Shell 如果包含文件,请将整个文件夹移动到新目录中
我有一个目录 test2包含以下内容:Shell 如果包含文件,请将整个文件夹移动到新目录中,shell,unix,grep,cd,Shell,Unix,Grep,Cd,我有一个目录 test2包含以下内容: file1 test.pdb xyz.txt 1.txt file2 test.pdb xyz.txt file3 test.pdb xyz.txt 1.txt 我想将包含1.txt的文件夹(这里是文件1和文件3)移动到名为“complete”的新目录中。如何操作 期望输出: 完整的 file1 test.pdb xyz.txt 1.txt file3 test.pdb xyz.txt 1
file1
test.pdb
xyz.txt
1.txt
file2
test.pdb
xyz.txt
file3
test.pdb
xyz.txt
1.txt
我想将包含1.txt的文件夹(这里是文件1和文件3)移动到名为“complete”的新目录中。如何操作
期望输出:
完整的
file1
test.pdb
xyz.txt
1.txt
file3
test.pdb
xyz.txt
1.txt
测试2
迄今为止的代码:
find . -maxdepth 2 -name "*ionized.pdb" -print| sed "s|^\./||"
假设您使用的是
bash
,您可以从test2/
的父目录使用此命令:
while IFS= read -rd '' d; do
[[ -f $d/1.txt ]] && echo mv "$d" complete
done < <(find test2 -type d -print0)
这假设两个目录
test2
和complete
处于同一级别。谢谢。代码假设完整目录存在于test2内部还是外部?代码假设complete2
在test2
内部。如果在外部,则代码将进一步简化。我看到此输出mv./file1完成mv./file3完成,但完整文件为空。。
while IFS= read -rd '' d; do
[[ -f $d/1.txt ]] && echo mv "$d" complete
done < <(find test2 -type d -print0)
find test2 -type d -print0 |
while IFS= read -rd '' d; do [ -f "$d/1.txt" ] && echo mv "$d" complete; done