復元バックアップスクリプトを実行しているときにパーティションファイルを結合しようとすると、catは次のエラーを出力します。
cat: fullbackup_mrbsNuevo_15_6_2016.tar.gz.*: No such file or directory
cat コマンドを実行する行は次の行です。
cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."\* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"
ファイルが存在し、そのディレクトリにあることを確認しました。また、シェルでコマンドを実行してみましたが、うまくいきます。
私のスクリプトに何が問題なのかわかりません。
ディレクトリからlsコマンドを実行すると、ファイルは次のようになります。
cisco@Paquito1:/tmp/backup$ ls -lah
total 7,1M
drwxr-xr-x 2 cisco cisco 4,0K 2016-06-18 12:01 .
drwxrwxrwt 5 root root 4,0K 2016-06-18 10:10 ..
-rw-r--r-- 1 cisco cisco 5,0M 2016-06-18 11:52 fullbackup_mrbsNuevo_15_6_2016.tar.gz.aa
-rw-r--r-- 1 cisco cisco 2,1M 2016-06-18 11:52 fullbackup_mrbsNuevo_15_6_2016.tar.gz.ab
catコマンドを実行する前に、/tmp/backupディレクトリに移動しました。
よろしくお願いします。
答え1
エスケープしないでください*
。これは、シェル/バッシュが拡張ファイル名の代わりにガベージスターを検索するためです。
努力する
cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"
編集する
PS引用したいです。
cat ${type}_${NAME_DIR}_${d}_${2}_${1}.tar.gz.* > ${type}_${NAME_DIR}_${d}_${2}_${1}.tar.gz"
答え2
最後に、解決策は次のとおりです。
cat $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz."* > $type"_"$NAME_DIR"_"$d"_"$2"_"$1".tar.gz"
私は*を脱出せずに「」の外に置きました。答えてくれてありがとう。彼は私が間違いを見つけるのを助けました。