【发布时间】:2020-01-07 11:55:56
【问题描述】:
我有一个包含 50,000 个文件的目录;我只需要移动文本文件中的这些文件的子集。我正在寻找将这些文件移出的脚本/方法。
我一直在寻找有关如何移动所有文件的项目,但这对我不起作用。
【问题讨论】:
我有一个包含 50,000 个文件的目录;我只需要移动文本文件中的这些文件的子集。我正在寻找将这些文件移出的脚本/方法。
我一直在寻找有关如何移动所有文件的项目,但这对我不起作用。
【问题讨论】:
您可以使用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 保证我们不会遇到命令行长度限制。
【讨论】: