У меня есть текстовый файл (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 переход от/корня/Dustbin/... в/корень/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