2016-12-05 4 views
-3

引数としてfilenameをとるbashスクリプトを実行しようとしています。引数として与えられたファイルには現在のシステムのファイル/フォルダの絶対パスが含まれます。 たとえば、引数として与えられたfilenameは1.txtです。あなたが1.txtをキャッチするならば、以下のパスを持つでしょうファイル名を引数とし、バックアップファイルを作成するためのbashスクリプト

/etc/host 
/var/lib/mysql 
/home/user/Desktop 

私はこれらのパス内のすべてのファイルを別のディレクトリにコピーしたいと思います。そして、指定されたファイル名引数は異なるパスを持つかもしれません。私はちょうど 'バックアップ'ディレクトリにパス内のすべてのファイルをコピーしたい。これを行うには

+0

について: 'rsync -nav \' cat 1.txt \ 'destination/.'、' man rsync'と '/'を使って '-n'が何をしているかを検索してください。 – webb

+0

お願いします。 rync –

+0

でいいことはありません: 'rsync -av \' cat 1.txt \ 'destination/.'これは、' 1.txt'のすべてのパスを 'destination'にコピーします。 '1.txt'のパスに空白や面白い文字がないこと、そして何百もの文字がないことを確認してください。 – webb

答えて

0

一つの方法は、次のようになります。

while read -r line; do cp -a "$line" /folder/backup; done < /folder/1.txt 

cp -aコマンドは、アーカイブのためのものと、ファイル/フォルダのすべての権限を保持しています。

関連する問題