需要将 500 个特定文件从一个共享目录移动到另一个共享目录

Need to move 500 specific files from one share directory to another

我有一个包含 50,000 个文件的目录;我只需要移动文本文件中的这些文件的一个子集。我正在寻找 script/way 来将这些文件移出。

我一直在寻找有关如何移动所有文件的项目,但这对我不起作用。

您可以使用mv命令。在下面的示例中,我将 list.txt 中的条目从旧目录移动到新目录。

$ mkdir old new
$ touch old/{a,b,c}.{sh,c,txt}
$ echo "a.sh
c.txt
b.c" > list.txt
$ cd old/
$ mv $(cat ../list.txt) ../new
$ find ../new/
../new/
../new/a.sh
../new/c.txt
../new/b.c

假设你有 GNU coreutils,你可以使用

xargs -a tomove.txt -d '\n' mv -t /path/to/destination

其中 tomove.txt 包含要移动的文件的名称,每行一个。 -d '\n' 通过使用换行符(而不是任何空格)作为文件名分隔符,确保其中包含空格的文件名被正确解释。

xargs 保证我们不会 运行 进入命令行长度限制。