출력을 구문 분석 ls -Al
하고 파일 또는 디렉터리 이름을 가져와야 합니다.
ls -Al
산출:
drwxr-xr-x 12 s162103 studs 12 march 28 2012 personal domain
drwxr-xr-x 2 s162103 studs 3 march 28 22:32 public_html
drwxr-xr-x 7 s162103 studs 8 march 28 13:59 WebApplication1
그냥 사용해야겠네요ls -Al | <something>
예를 들어:
ls -Al | awk '{print $8}'
$8
하지만 디렉터리 이름에 공백이 있으면 이름이 아니라 이름의 일부이기 때문에 작동하지 않습니다 . 어쩌면 성이나 그 앞에 오는 모든 것을 제거할 수 있는 유틸리티가 있을까요?
답변1
ls
파일 이름 목록을 구문 분석하려고 시도해서는 안 됩니다 . bash 위키에는전체 기사공백을 포함하는 것은 .files를 구문 분석하지 말아야 하는 ls
가장 큰 이유 중 하나입니다 .
당신이 사용하고 싶은 glob
:
printf '%s\n' *
귀하의 질문은 파일 이름을 인쇄하고 싶다는 의미일 뿐이지만 이에 대한 조치도 취하고 싶은 것 같습니다. 이 경우 glob을 반복해야 합니다.
for f in *; do
somecommand "$f"
done