BASH 파일 속성 체조 : 전체 경로와 권한이있는 파일을 쉽게 얻을 수있는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2254370

  •  20-09-2019
  •  | 
  •  

문제

Command Line의 Masters,

한 줄 당 두 개의 항목에 포함 된 파일을 생성하려는 디렉토리 트리가 있습니다 : 각 파일의 전체 경로 및 해당 파일의 해당 권한이 있습니다.

예를 들어, 한 줄은 다음을 포함 할 수 있습니다.

/v1.6.0.24/lib/mylib.jar -r-xr-xr-x

왼손 열을 생성하는 가장 좋은 방법은 찾기. 그러나 왜냐하면 ls 파일 이름 목록을 읽거나 stdin을 가져갈 수있는 기능이없는 것 같습니다.이를 위해이를 수행하는 스크립트에 의지 해야하는 것 같습니다. ... 성가신.

나는 사람들이 어떻게 든 발견 된 각 파일에 대해 명령을 실행하는 것을 발견했다고 확신했지만 오늘 아침에 나는 그것을 알아낼 수 없으므로 멍청해야합니다!

누구나?

읽는 파일의 관점에서 파일 이름에는 공백이있을 수 있습니다. 기존 명령 줄 도구 중 일부를 오른쪽으로 왼쪽으로 계산할 수있는 방법이 있다면 좋을 것입니다. 예를 들어, 우리는 가지고 있습니다 자르다. 하지만, 자르다 왼쪽 우선이며 마이너스 숫자를 사용하지 않으면 오른쪽에서 숫자를 시작하는 것을 의미합니다 (나에게 가장 명백한 구문처럼 보입니다). ... 프로그램을 작성하지 않아도 쉬운 방법이 있습니까?

미리 감사 드리며, 제공 할 수있는 사례를 설명해 주셔서 감사합니다!

감사합니다, Rt

도움이 되었습니까?

해결책

암소 비슷한 일종의 영양 findutils 4.2.5+:

find -printf "$PWD"'/%p %M\n'

다른 팁

stat -c %A file

파일에 대한 파일 권한을 인쇄합니다.

같은 것 :

find . -exec echo -ne '{}\t\t' ';' -exec stat -c %A {} ';'

당신에게 당신의 애프터에 대한 나쁜 형식의 버전을 줄 것입니다.

모든 것이 테이블에 정렬되기를 원하기 때문에 훨씬 까다로워집니다. '열'명령을 조사하고 싶을 수도 있습니다. TBH 나는 출력 요구 사항을 조금 이완시킬 것입니다. SH의 출력 포맷은 엉덩이의 통증입니다.

LS와 awk로도 할 수 있습니다.

ls -l -d $PWD/* | awk '{print $9 " " $1}' > my_files.txt

bash 4

shopt -s globstar
for file in /path/**
do
    stat -c "%n %A" "$file"
done
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top