0

ディレクトリ内のすべてのファイルからそのディレクトリ内のサブディレクトリを除いた tar ファイルを作成し、その tar ファイルをサブディレクトリの 1 つに配置したいと考えています。たとえば、/test にいくつかの .txt ファイルがあり、/test には ArchivedFiles という別のディレクトリもあります。tar コマンドに、すべての .txt ファイルをアーカイブして /test/ArchivedFiles に配置するように指示したいと思います。
どうすればこれを行うことができますか?

4

2 に答える 2

1
tar cf test/foo/test.tar -- `find test  -maxdepth 1 -name '*.txt' -type f`

それはあなたが望むことをするべきだと思います。

tar コマンドの古さにより機能しないオプションは次のとおりです。

find test -maxdepth 1 -type f -name '*.txt' -print0 | tar -cf test/foo/test.tar --null --files-from -

問題が発生しているため、次のコマンドを試すことができます。

tar cf test/foo/test.tar `find test  -maxdepth 1 -name '*.txt' -type f`
echo tar cf test/foo/test.tar `find test  -maxdepth 1 -name '*.txt' -type f`
tar c f test/foo/test.tar `find test  -maxdepth 1 -name '*.txt' -type f`
find test  -maxdepth 1 -name '*.txt' -type f

そして、何が起こっているのかを確認できるように、出力を貼り付けます。

find も非常にレガシーであることを考えると、次のことを試してみましょう。

tar cf test/foo/test.tar test/*.txt
于 2011-06-28T21:15:09.560 に答える
0

次のコマンドが機能します。サブディレクトリは tar に配置されますが、それらのサブディレクトリの内容は tar に配置されません。これは、tar をサブディレクトリに配置すると、tar が自分自身の中に自分自身を入れてしまうことを心配する必要がないことを意味します...

たとえば、現在のディレクトリにあるすべてのファイルを、d1 というサブディレクトリにある mytar.tar という tar ファイルに入れたい場合:

tar --no-recursion -cvf d1/mytar.tar *
于 2011-06-28T21:22:58.597 に答える