私は次の点を考慮して:
- 1000以上のファイルを含むディレクトリを保持します。
- これらのファイルのサブセットを含むgzipで圧縮されたtarファイル(x.tgz)があります。
gzipで圧縮されたtarファイルの内容を読み取り、tarファイルに含まれているディレクトリからすべてのファイルを削除する単一のコマンドライン(可能な場合)は何ですか?
答え1
tarファイルを作成したディレクトリ(たとえば)に配置する必要があります$HOME
。その後、Documentsディレクトリにセキュリティtgzがある場合は、/backup/Documents.tgz
次のことができます。
$ for file in $(tar -tzf /backup/Documents.tgz); do \
[[ -f $file ]] && rm $file || echo "$file does not exist"; done
ディレクトリを削除するにはrm -fr $file
。
答え2
たぶんこれはあなたに役立つでしょう
rm -rf `find . -name '*.tgz' -exec tar -tzf '{}' \;`
そのように多くのファイルをどのように処理するのか分かりません。
答え3
$ tar -tzf x.tgz |grep -v '/$' | xargs -n1 -d '\n' echo rm
echo
よさそうな場合は削除してください。
説明する:
tar -tzf x.tgz
- リストの内容grep -v '/$'
- ディレクトリをスキップxargs -n1 -d '\n' echo rm
- ()入力-n1
の各()行に対して次のように実行します。-d '\n'
echo rm
答え4
tar(非常に細かいモードでも)は、tar t
出力にシンボリックリンクとハードリンクをリストしますtar t
。使用する方が良いです:
star -t -tpath < archive.tar > file-list.txt