2017-03-23 9 views
0

それぞれに同じ名前のファイルが含まれていますが、zipファイルには一意の名前が付いています。私がしたいのは、複数のzipから同じ名前のすべてのファイルを1つのディレクトリに置くことですが、zipフォルダ名をファイル名に追加することによって、それらのzipを保存します。さらに、zip内に同じフォルダ構造が存在するとは限りません。同じ名前のファイルは、zip内の任意のフォルダに置くことができます(ただし、中間のフォルダ名を保持する必要はありません)。例えばディレクトリにファイルをコピーし、ファイル名にパス名を追加します。

、私は

-> zip1 - folder1 - file1 
        - file2 
-> zip2 - file1 
     - file2 

を持っていると言うそして、私が欲しいのは、連結の名前と一緒にディレクトリに以下のファイルを得ることです:

- zip1file1 
- zip1file2 
- zip2file1 
- zip2file2 

「folder1のは」ありません無視されるのはですが、私は本当にどちらの方法にも気にしません.zipフォルダには重要な情報があります。

これまでのところ、私は私が保存したい名前を持つ独自のフォルダにすべてのジッパーを解凍する

for zip in *.zip; do unzip "$zip" -d "${zip%.zip}"; done 

を行っています。それから私は、すべて解凍されたファイルを含むディレクトリから「見つける」を使用して、関連するすべてのファイルのリストを見つけることができます。

find . -name 'file1.m' 

をしかし、私は新しいにこの「検索」の結果を移動するかどうかはわかりませんディレクトリに移動し、ファイル名にフォルダ名を追加します。

答えて

0

私が移動したファイルのディレクトリである私の最高の

myfilesというの努力をします。 はワンライナーではなく、

DEST="./myfiles" 
mkdir -p $DEST 
find zip* -type f | while read f 
do 
    mv $f $DEST/${f//'/'} 
done 

を行います動作するはずです:

mv zip1/folder1/file2 ./myfiles/zip1folder1file2 
mv zip1/folder1/file1 ./myfiles/zip1folder1file1 
mv zip2/file2 ./myfiles/zip2file2 
mv zip2/file1 ./myfiles/zip2file1 
+0

答えてくれてありがとう、しかしmyfilesというフォルダがこれを実行した後、まだ空である、と私は 'の使用を取得します。mvを[-f | -i | -n] [-v]ソースターゲットmv [-f | -i | -n] [-v] source ... directory'を繰り返し警告する – ayw

関連する問題