Bash 스크립트에서 임의의 파일을 생성하는 방법과 생성된 파일을 삭제하는 방법은 무엇입니까?

Bash 스크립트에서 임의의 파일을 생성하는 방법과 생성된 파일을 삭제하는 방법은 무엇입니까?

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

관련 정보