많은 수의 이미지 파일을 일괄 처리해야하는 프로젝트에서 작업하고 있습니다. 작업을 쉽게하기 위해 나는 n
디렉토리를 만들고 사용자 입력을 기반으로 m
개의 파일을이 스크립트로 옮길 것입니다.디렉토리를 가로 지르는 쉘 스크립트
내 문제는 이제 쉘 스크립트를 통한 디렉토리 탐색을 이해하는 것입니다.
가 나는 두 개의 내부 폴더를 포함 whcih Pano2 폴더 내부를 실행하면
dirlist=$(find $1 -mindepth 1 -maxdepth 1 -type d)
for dir in $dirlist
do
cd $dir
echo $dir
ls
done
위에서 설명한 정렬 스크립트의 마지막에이 조각을 추가 한, 나는 항상 오류가 발생했습니다
./dirTravel: line 9: cd: Pano2/05-15-2012-2: No such file or directory
그러나, 그 후에 지정된 디렉토리에서 파일 목록을 가져옵니다.
경고의 배경은 무엇입니까? ls
다음에 cd ../
을 추가하면 Pano2/안에 폴더 목록이 표시되지만 파일 자체는 표시되지 않습니다.
이름에 공백이 있으면 솔루션이 폭파합니다. 이런 종류의 질문은 일주일에 2-3 배로 질문을받습니다. 잠시 시간을내어'[bash] find while'을 검색하십시오 (루프에는 사용하지 마십시오). 행운을 빕니다. – shellter
@shellter 폴더 이름은 스크립트에 의해 프로그래밍 방식으로 생성되며 파일 이름이 없습니다. 귀하의 요점은 그렇지 않으면 유효하지만, 실제로이 상황에서 작동하지 않습니다. – Jason
@shelter - while을 사용하면 파일 이름에 공백이있을 경우 파일이 끊어지는 것을 막을 수 있지만 이름에 줄 바꿈이있는 경우에는 유효하지 않습니다. – jordanm