tar コマンドを使用します。
tar -cvf protTests.tar protTests/*
tar
フォルダ内のすべてのファイル。protTests
しかし、これにはフォルダ内のシンボリックリンクが含まれていますが、これは私たちが望むものではありません。
すべてのシンボリックリンクを省略するコマンドラインオプションはありますか?
答え1
tar
内部のすべてのファイルのリストを提供するだけですprotTests
(シンボリックリンクを除く)。
find protTests -maxdepth 1 -mindepth 1 -not -type l -print0 |
tar --null --files-from - -cvf protTests.tar
ところで、既存のコマンドは次のようになります。
tar -cvf protTests.tar protTests/*
保管しないみんなprotTests
、名前が始まらないファイル.
(隠しファイル)のみを保持します。 glob*
演算子は、名前で始まるファイルをスキップします.
。また、このコマンドには、protTests
ファイル数が多い場合(数千以上)、コマンドラインprotTests/*
に合わせるにはあまりにも多くのパラメータに拡張される可能性があるという問題があります。
このような単純なコマンドでは、次の問題は発生しません。
tar -cvf protTests.tar protTests
答え2
マイタールの実装最良の方法です
star -cv -f out.tar -find protTests ! -type l