我有一個文本文件(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