2009-12-27 17:25:21 +0000 2009-12-27 17:25:21 +0000
84
84

在Linux中如何将文件和目录移动到父文件夹?

在Linux(Ubuntu)中,如何将所有文件和目录移动到父目录?

答案 (12)

96
96
96
2013-01-26 20:20:56 +0000

我来这里是因为我也是新手。由于某些原因,上面的方法对我没有用。我所做的是将所有文件从一个dir移到它的父dir:

cd to/the/dir
mv * ../
```。
72
72
72
2009-12-27 17:29:43 +0000
find . -maxdepth 1 -exec mv {} .. \;

这也会移动隐藏的文件。

当它试图移动.(当前目录)时,你会收到消息。

mv: cannot move `.' to `../.': Device or resource busy

当它试图移动0x6&(当前目录)时,你会收到这样的信息:

0x1&

但这不会造成任何伤害。

10
10
10
2009-12-27 17:27:56 +0000

在shell中输入:

mv *.* ..

这将所有文件向上移动一级。

字符 * 是通配符。所以*.deb会移动所有的.deb文件,Zeitgeist.*会将Zeitgeist.avi和Zeitgeist.srt向上移动一个文件夹,当然,..表示的是父目录。

要移动包括文件夹等在内的所有内容,只需使用*而不是*.*

6
6
6
2014-07-16 18:50:24 +0000

再简单不过了:

mv * ../

也要移动隐藏文件。

mv /path/subfolder/{.,}* /path/

mv是移动文件的命令,*表示所有文件和文件夹,../是父目录的路径。

2
2
2
2011-01-25 21:33:46 +0000

在bash中,你可以使用* shopt -s dotglob**来使*匹配所有文件,并简单地通过

shopt -s dotglob; mv * ..

来移动它们,这并不是最好的解决方案,因为在你通过

shopt -u dotglob

改变之前,这个设置对shell来说是永久的,但我认为这很好知道。

1
1
1
2012-07-25 20:15:46 +0000

一个不会出错且每次都能成功的方法:

ls -1A . | while read -r file                                                    
do                                                                                  
    mv "./${file}" ..                                                            
done
```。
1
1
1
2014-07-16 18:37:18 +0000
find . -maxdepth 2 -type f -exec mv {} .. \;

我用上面的方法把所有文件从子文件夹移到父文件夹。

我把数据按年份放在文件夹里,但发现通过使用元数据,我可以把它们都放在同一个文件夹里,这样更容易管理。

例如:

/data/2001/file_1
/data/2002/file_2
/data/2003/file_3
```。
0
0
0
2016-04-11 04:38:26 +0000

不需要改变目录。只需在路径末尾加上 *。

mv /my/folder/child/* /my/folder/

以上只移动非隐藏文件。如果只移动隐藏文件,请使用.*

mv /my/folder/child/.* /my/folder/

以上两个命令可以合并为一个命令。

mv /my/folder/child/{.,}* /my/folder/

也可以参考 如何通过 * 移动所有文件包括隐藏文件到父目录

0
0
0
2018-12-13 14:22:48 +0000
find -type f|while read line; do mv $line ${line##*/}; done
0
0
0
2009-12-27 17:48:32 +0000

假设你所有的隐藏文件都是以dot开头,后面跟着一个字母或数字(应该是这样的),你可以使用

mv * .[A-Za-z0-9]* ..

.[A-Za-z0-9]*部分是为了确保你不要试图沿着...移动,这样会失败。

0
0
0
2011-11-03 11:39:25 +0000

很简单,在Linux中把所有的文件和文件夹移到父目录下。

转到该文件夹,然后使用这个命令。

mv * /the full path

例如,如果你的文件和文件夹如下:

/home/abcuser/test/1.txt 
                   2.txt
                   3.jpg
                   4.php
                   1folder
                   2folder

通过cd进入该文件夹:

cd /home/abcuser/test
mv * /home/abcuser

你所有的文件和文件夹都会移动到abcuser文件夹(父目录)。

-1
-1
-1
2016-05-20 06:32:28 +0000

切换到子目录,执行以下命令复制或移动文件。

例:a是父目录,b是子目录,我们要将b中的所有文件移动/复制到a中(子目录到父目录)。

cd b
cp * ..
mv * ..