2016-11-21 16 views
0

У меня есть текстовый файл (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, сопоставляя имена файлов!

У кого-нибудь есть идея или уметь указывать на меня в правильном направлении?

+2

SO, не существует, чтобы написать свой код, этот вопрос может помочь вам начать работу в правильном направлении http://superuser.com/questions/538306/move-a-list-of-filesin-a-text-file -to-a-directory, а также функцию 'basename'. Если вы столкнетесь с проблемами, добавьте проблемный код к этому вопросу, и мы помогаем –

+2

Процитировать через 'log.txt' и вызвать' basename' для каждого имени файла, который возвращает имя файла без каталога. Если это совпадает с именем, которое вы пытаетесь восстановить, используйте имя файла в качестве адресата для 'mv'. – Barmar

+1

В дополнение к другим предложениям по поиску похожих ответов на вопросы и исследования 'mv', загляните в [mmv] (http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x4055.htm) и переименовать. – artdanil

ответ

2

Попробуйте с:

#!/bin/bash 

dustbin="/root/Dustbin" 
file="$1" 

mv $dustbin/$file $(grep "/$file$" $dustbin/log.txt) 

В зависимости от ваших потребностей, вы можете улучшить скрипт добавления "MKDIR" до "мв", ....

+0

Спасибо за это Это помогло мне указать мне в правильном направлении и заставить мой сценарий работать ближе к тому, как я его хочу – William