tarファイルが存在することを確認します。

tarファイルが存在することを確認します。

作成したいtarファイルがすでに存在するかどうかをテストしようとしています。そうでなければtarファイルを生成したいです(コードのこの部分はうまくいきます)。ただし、tarファイルのファイル名が存在するかどうかをテストするifステートメントは機能しません(tarファイルが存在するかどうかを実際にテストせずにtarファイルがすでに存在していても、elseステートメントに直接ジャンプするだけです)。どんなアイデアがありますか?

注:fire_dir_nameは圧縮したいファイルの名前です(例:myfile1.txt)。

#create variable for new name of file/dir
date=$(date +"%Y%m%d")
new_name="$file_dir_name.$date"
file_name="$new_name.tar"
echo $file_name

#check if tar file exists already
if [ -f "$file_name" ]
then
        echo "$file_name" exists
else

        # create tar file 
        tar -cvf $dir_path/$new_name.tar $file_dir_name -C $dir_path

ベストアンサー1

ここで重要なのは、作成中の同じファイル名をテストする必要があることです。

#check if tar file exists already
if [ -f "$file_name" ]
then
        ...
else
        # create tar file 
        tar -cvf "$file_name" ...
        ...
fi

file_nameまた、フルパスになることができない理由もありません。

file_name="$dir_path/$new_name.tar"

ディレクトリを変数名に入れると、エラーが発生する可能性が低くなります。変数tar_nameなどtar_pathを呼び出す方が良いスタイルです。

おすすめ記事