Windows에서 DVD 굽기를 시도했지만 전체 경로 이름 길이가 255자 제한을 초과하여 실패했습니다.
우리 파일은 Debian Linux(Windows에서 삼바를 사용하여 액세스)에 저장되어 있으므로 긴 경로 이름을 찾기 위해 이상한 Windows 응용 프로그램을 실행하는 것을 피하기 위해 Linux 명령을 사용하여 파일을 찾는 것을 선호합니다.
특정 폴더에 대한 상대 경로 및 파일 이름 목록을 각 폴더의 길이에 따라 내림차순으로 정렬하여 출력하려면 어떤 명령을 실행할 수 있습니까?
출력은 다음과 같아야 합니다.
92 ./site/testapidocs/wjhk/jupload2/policies/class-use/DefaultUploadPolicy_WithoutAlertBox.ht
83 ./site/testapidocs/wjhk/jupload2/upload/class-use/PacketConstructionThreadTest.html
76 ./site/apidocs/wjhk/jupload2/upload/helper/class-use/ProgressBarManager.html
52 ./site/xref/wjhk/jupload2/gui/JUploadFileFilter.html
31 ./site/samples.java/applet.jnlp
17 ./site/index.html
답변1
GNU find(Linux 또는 Cygwin에서)를 사용하면 상대 경로가 255자보다 긴 파일을 찾을 수 있습니다.
find -regextype posix-extended -regex '.{257,}'
(초기 257개 계정 ./
.)
답변2
이 작업을 수행하는 방법에는 두 가지가 있습니다.
find . | perl -pe 'print (length($_)-1)." ";' | sort -rn | less
find . | awk '{print length,$0}' | sort -rn | less
나의 첫 번째 시도(찾다. | perl -pe '길이 정렬' |) Perl을 사용하는 명령에서 보고된 문자 수는 1입니다. 개수에 개행 문자가 있다고 가정하기 때문입니다. 위의 방법보다 더 깔끔할 수도 있지만 필요한 결과를 얻었습니다.