![사용자가 지정한 폴더에 쓰기 전용 파일을 표시하는 방법 도움말](https://linux55.com/image/64559/%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80%20%EC%A7%80%EC%A0%95%ED%95%9C%20%ED%8F%B4%EB%8D%94%EC%97%90%20%EC%93%B0%EA%B8%B0%20%EC%A0%84%EC%9A%A9%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%ED%91%9C%EC%8B%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20%EB%8F%84%EC%9B%80%EB%A7%90.png)
사용자가 선택한 폴더에 들어갈 수 있도록 하는 스크립트를 작성 중입니다. 완료되면 스크립트는 루트 디렉터리부터 시작하여 폴더를 검색하고 "기타" 범주에 대한 쓰기 권한만 가진 폴더의 모든 파일을 표시합니다. 이것이 내가 지금까지 얻은 것입니다. 내 문제는 작은 찾기 옵션에 있다는 것을 알고 있습니다. 누군가가 도울 수 있기를 바랍니다.
echo -e "Enter a Folder Name Below\n"
read foldername
answer=$(find -prm -o+w / -name $foldername 2>/dev/null)
if [ "$answer" = "" ]
then
clear
echo -e "\n\n That Was Bad Input"
else
clear
ls -l $answer
fi
read pause
답변1
스크립트에 몇 가지 개선이 필요합니다. 변수를 인용하는 것은 좋은 "$folder"
습관 입니다 "$answer"
. -z
빈/비어 있지 않은 문자열을 테스트하려면 스크립트에서 및 를 사용해야 합니다 . 특히 슬래시가 있는 입력을 읽을 때 -n
이것을 사용하는 것이 가장 좋습니다 . read -r
또한 find 명령에서 매개변수의 순서를 변경해야 합니다. wholename
쉘에 따라 name
.
#!/bin/bash
echo -e "Enter a Folder Name Below\n"
read -r foldername
answer=$(find / -type d -perm /o+w -wholename "$foldername" 2>/dev/null)
if [ -z "$answer" ]
then
clear
echo -e "\n\n That Was Bad Input"
else
clear
ls -l "$answer"
fi
read pause
답변2
옵션에 구문 오류가 있습니다 find
. 예를 들면 다음과 같습니다 -perm
.
$ find $foldername -type f -perm -o+w