tar
コマンドに無効なパラメーターが渡された場合、file1
コマンドは使用できません。正しいファイルコマンドtar
は次のとおりです。
$ tar cvf total.tar file1 file2
ただし、次の形式を使用した後は回復できません。file1
$ tar cvf file1 file2 total.tar
file2
tar: total.tar: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
$ ls -ltr
total 16
-rw-r----- 1 3 Apr 26 11:55 file2
-rw-r----- 1 10240 Apr 26 11:57 file1
$ file file1
file1: POSIX tar archive (GNU)
$ tar zxvf fil1
tar (child): fil1: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
答え1
tar
ファイルをアーカイブしfile2
てtotal.tar
名前付きアーカイブに入れるように要求しましたが、file1
そうしようとしました。残念ながら、これは上書きさfile1
れたことを意味しますfile2
。
tar tvf file1
z
(アーカイブの作成時に指定しなかったため、ここに追加しないでください。)
回復できる唯一の方法はfile1
バックアップを通してです。
答え2
説明:f
inはcvf
このオプションへのショートカットです-f
。このオプションは、次の引数でtarするターゲットファイルの名前を想定します。 @AndrewHenleと@StephenKittは、パラメータ順序の切り替えの結果を説明しました。
答え3
これは定義でよく知られているトラップですtar command line syntax
。
代わりにmyを使用すると、この問題を回避できますstar
。
star
他のエラー固有のCLI定義を使用することは、名前で呼び出すときはあまり一般的ではなく、呼び出し時に上書きされないstar
ため、既存のtar実装よりもはるかに安全です。plain files
tar