我有一个文本文件(log.txt),其中包含我希望文件结束的文件路径列表。
/root/NewDir/Testfile.txt
/root/NewDir/Testfile2.txt
/root/NewDir2/Alsoatest.txt
...
这些文件当前与log.txt
位于同一位置/root/Dustbin/log.txt
/root/Dustbin/Testfile.txt
/root/Dustbin/Testfile2.txt
/root/Dustbin/Alsoatest.txt
...
我正在尝试创建一个只接受文件名的脚本,并将指定的文件移动到log.txt文件中指定的位置。
例如:
# restore Testfile.txt
结果应该是Testfile.txt从/ root / Dustbin / ...移动到/ root / NewDir /...
我是bash / shellscript的新手,并且已经尝试了几个小时的研究,但我完全难过了! 我知道我需要使用'mv'函数但不确定如何通过匹配文件名来填充目标与log.txt文件中指定的目标!
有人会有任何想法或能够指出我正确的方向吗?
答案 0 :(得分:2)
尝试:
#!/bin/bash
dustbin="/root/Dustbin"
file="$1"
mv $dustbin/$file $(grep "/$file$" $dustbin/log.txt)
根据您的要求,您可以改进脚本添加" mkdir"在" mv",...。
之前