每当文件包含某个字符串时,我都会尝试将文件从文件夹A移动到文件夹B:
grep -Rli '22/05/2018' ads/ | awk -F "//" '{print $2}' | xargs cp $0 projection/$1
cp: illegal option -- b
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
如何解决这个问题?
答案 0 :(得分:3)
以下可能对您有所帮助。
grep -L -Z -r 'your_string_to_be_checked' . | xargs -0 -I{} mv {} target_directory/
<强> 说明: 强>
grep -L
:表示保留那些没有我们正在搜索的特定字符串的文件。
-Z
:表示输出文件名中应该有\0
,因此空格不会用作分隔符。
-I{} mv {} new_directory/
表示将{}
替换为文件名,并将其设置为mv filename new_directory
并运行它以将文件移至新位置。
我在这里使用mv
你也可以在这里使用cp。
答案 1 :(得分:1)
答案 2 :(得分:-1)
获得要复制的文件名列表后,可以使用xargs -I:
$ cat listOfFileNames | xargs -I{} cp {} $destFolder
-I
选项为参数列表提供了一个名称,允许您将它们放在任何您想要的位置。