사용자가 지정한 폴더에 쓰기 전용 파일을 표시하는 방법 도움말

사용자가 지정한 폴더에 쓰기 전용 파일을 표시하는 방법 도움말

사용자가 선택한 폴더에 들어갈 수 있도록 하는 스크립트를 작성 중입니다. 완료되면 스크립트는 루트 디렉터리부터 시작하여 폴더를 검색하고 "기타" 범주에 대한 쓰기 권한만 가진 폴더의 모든 파일을 표시합니다. 이것이 내가 지금까지 얻은 것입니다. 내 문제는 작은 찾기 옵션에 있다는 것을 알고 있습니다. 누군가가 도울 수 있기를 바랍니다.

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

관련 정보