
나는 다음과 같은 것을 찾고 있습니다 :
ls | ask_yes_no_for_each_file | chmod +x the_files_approved
또는 유사한 구문.
또한 개별 확인을 원하는 다른 명령을 작업할 수도 있습니다.
답변1
이것은 당신이 찾고 있는 것을 수행합니다:
find . -maxdepth 1 -type f -print0 | xargs -L1 -p0 chmod +x
이것은 일반적 으로 다음 find
과 같은 이유로 사용됩니다.ls
구문 분석 ls
출력이 신뢰할 수 없습니다.. 그러나 를 사용하는 이 형식은 find
줄 바꿈이나 기타 어려운 문자가 포함된 파일 이름에도 작동합니다.
설명
find . -maxdepth 1 -type f -print0
그러면 파일이 선택됩니다. 이는 find의 다양한 옵션을 사용하여 사용자 정의할 수 있습니다. 이 옵션은 null로 구분된 목록에 파일 이름을 인쇄하도록
print0
지시합니다 .find
이는 파일 이름 목록을 전송하는 데 유일하게 신뢰할 수 있는 방법입니다.xargs -L1 -p0 chmod +x
이는 생성된 파일 이름의 null로 구분된 목록을 가져와
find
해당 목록에 명령을 적용합니다.
이 -L1
옵션은 xargs
한 번에 하나의 파일 이름에만 작업하도록 지시합니다. 이 -p
옵션은 xargs
계속하기 전에 승인을 묻는 메시지를 표시합니다. 이 -0
옵션은 xargs
널 문자를 파일 이름 사이의 구분 기호로 사용하도록 지시합니다.
[ @kwan이 지적하기 전까지 -p
는 옵션을 몰랐습니다 .]xargs
답변2
당신이 사용할 수있는 xargs
.
예:
ls|xargs -I path -p chmod +x path
옵션 -p
: 각 명령줄을 실행하고 터미널에서 줄을 읽을지 여부를 사용자에게 묻습니다. 응답이 'y' 또는 'Y'로 시작하는 경우에만 명령줄을 실행하세요.