Tar cfは、名前にコロンが含まれているファイルをアーカイブできません


0

私は現在、古いWebアプリケーションをアーカイブする作業に取り組んでいます。データベースとアプリケーション自体のバックアップを作成しました。今、アップロードしたすべてのファイルを含むファイルストアをバックアップしようとしています。

残念ながら、このアプリケーションはアップロードされたファイルを常に正しく処理していないため、アップロードしたクライアント上のフルパス名を含むファイルが多数、たとえば "C:\ test \ test.doc"になっています。

すべてのファイルを含むtarアーカイブを作成したいのですが、tar cfを実行すると、ファイル名にコロンが含まれているファイルにエラーが発生します。逃げようとしましたが、運が悪かったです。

例:

-rw-r--r-- 1 root root 29696 Jan  3 09:43 C:\test\test.doc

すべてをtarするだけです。

[root@server test]# tar cf test.tar *
tar: C\:\test\test.doc: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors

二重引用符で囲まれています。

[root@server test]# tar cf test.tar "C:\\test\\test.doc"
tar: C\:\test\test.doc: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors

エスケープ文字を使用します。

[root@server test]# tar cf test.tar C\:\\test\\test.doc
tar: C\:\test\test.doc: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors

(ファイル名を変更せずに)これを達成する方法はありますか?


1
あなたは「タールエスケープコロン」検索のためにグーグルで最初のマッチを試みましたか?
Zumo de Vidrio

うん、最初のヒットはその名前にコロンを含むtarファイルを抽出することです。
verhage

回答:


3

つかいます . ディレクトリ全体をアーカイブするのではなく *

tar cf ../test.tar .

1

以下も動作します( \ 一重引用符の内側):

$ touch 'C:\test\test.doc'
$ ls
C:\test\test.doc
$ tar cf test.tar 'C:\\test\\test.doc' 
$ tar tf test.tar 
C:\\test\\test.doc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.