我有一个文本文件(log.txt),其中包含我希望文件最终到达的文件路径列表。Bash - 使用目标文件从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从/根/垃圾桶移动/ ...到/根/ NEWDIR/...
我在一个总的新手bash/shellscript,并试图研究这个好几个小时,但完全难住! 我知道我需要使用'mv'函数,但不知道如何通过匹配文件名来填充log.txt文件中指定的目标!
会有人有任何想法或能够指出我在正确的方向吗?
SO,不存在编写你的代码,这个问题可能会让你开始正确的方向http://superuser.com/questions/538306/move-a-list-of-filesin-a-text-file -to-a-directory以及'basename'功能。如果遇到问题,请将有问题的代码添加到此问题中,我们将帮助 –
循环访问'log.txt'并在每个文件名上调用'basename',这会返回不带目录的文件名。如果它与您要恢复的名称相匹配,则使用文件名作为'mv'的目的地。 – Barmar
除了尝试搜索类似的回答问题和研究'mv'的其他建议外,请查看[mmv](http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x4055.htm )并重命名。 – artdanil