Linuxでbashを使用して任意のファイルを生成する方法と生成されたファイルを削除する方法は?わかりません。
アイデア:ユーザーは任意のファイル名を入力して保存する必要があります。保存したファイルを削除することもできます。
事前にありがとう
ファイルを削除するコード:
if [ "$REPLY" = "d" ];
then
read -r -p 'Delete file: Please enter the name of the file to delete: ' -a delete_file
echo -e "\nFile was deleted: ${delete_file[*]}\n"
break
fi
答え1
>
コマンド(command > file
)でリダイレクト演算子witherを使用するか、ファイルを別々に生成できます。
> file
file
その名前のファイルがすでに存在する場合は、その内容が上書きされます。そのファイルが存在しない場合は、空のファイルが生成されます。
または、このコマンドを使用することもできますtouch
。このコマンドは、ファイルがまだ存在しない場合は指定した名前でファイルを生成しますが、既存のファイルの内容を上書きしません。その名前のファイルが存在する場合、このtouch
コマンドは変更タイムスタンプを更新します。
touch file
したがって、スクリプトでユーザーにファイル名の入力を求め、ファイルを生成するには、次の手順を実行します。
#!/bin/bash
read -p "Enter a file name: " fileName
echo "You entered: '$fileName'"
while [ -e "$fileName" ]; do
read -p "A file named '$fileName' already exists, delete? [y/n]: "
if [ "$REPLY" = "y" ]; then
rm -- "$fileName"
else
read -p "Enter a different file name: " fileName
fi
done
touch -- "$fileName"
任意の名前でファイルを生成するには、最良のツールは名前がターゲットmktemp
ディレクトリで一意であることを確認することです(man mktemp
詳細を参照)。
$ randomFileName=$(mktemp)
$ echo "$randomFileName"
/tmp/tmp.QLLdNLFBFd