방법을 모르겠지만 빈 파일 이름으로 파일을 만들었습니다. 여기에 공백이 있는지 의심합니다 (마지막 이유를 설명하겠습니다).
chaouche@karabeela /mnt/ubuntu/storage $ ls
total 352K
drwx------ 3 chaouche chaouche 4.0K Feb 12 11:00
drwxr-xr-x 4 chaouche chaouche 4.0K Apr 14 23:13 AUDIO
drwxr-xr-x 5 chaouche chaouche 4.0K Jul 20 22:25 BACKUPS
-rw-r--r-- 1 chaouche chaouche 310K Jun 15 13:00 cv_yassine_chaouche_2012.pdf
drwxr-xr-x 2 chaouche chaouche 4.0K Jun 10 22:16 Mageia-3-i586-DVD
drwxr-xr-x 5 chaouche 1001 4.0K Oct 12 2012 MUSIQUE
drwxr-xr-x 15 chaouche chaouche 4.0K Oct 27 2012 PARISVIII
drwxr-xr-x 6 chaouche chaouche 4.0K Jun 12 18:33 SABAYON
drwxr-xr-x 5 chaouche chaouche 4.0K Jun 15 13:23 SIFTECH
drwxr-xr-x 5 chaouche chaouche 4.0K Feb 6 15:11 TOILES
drwxr-xr-x 4 chaouche chaouche 4.0K Jul 17 17:21 VIDEOS
chaouche@karabeela /mnt/ubuntu/storage $
나는 #linux에 파일을 제거하는 방법을 물었고 사람은 다른 모든 파일을 멀리 옮긴 다음 탭 완성을 사용하여 매우 흥미로운 동작을 제안했습니다.
# with tab completion
chaouche@karabeela /mnt/ubuntu/storage $ ls /
total 45M
-rwxr-xr-x 1 chaouche chaouche 34M Jan 16 2013 inkscape-0.48.4-1-win32.exe
-rwxr-xr-x 1 chaouche chaouche 8.6M Feb 4 11:42 mypaint-1.0.0-win32-installer.exe
-rwxr-xr-x 1 chaouche chaouche 2.7M Jan 17 2013 pdftkb_setup.exe
# without tab completion, wrote "/" by hand
chaouche@karabeela /mnt/ubuntu/storage $ ls /
total 212K
-rw-r--r-- 1 root root 0 Apr 15 2012 1
drwxr-xr-x 2 root root 4.0K Dec 9 2012 bin
drwxr-xr-x 3 root root 4.0K Jun 15 12:10 boot
-rw------- 1 root root 74K Jul 1 2011 dead.letter
drwxr-xr-x 19 root root 4.2K Jul 20 20:14 dev
drwxr-xr-x 117 root root 12K Jul 20 21:30 etc
drwxr-xr-x 4 root root 4.0K Jun 12 18:40 home
drwxr-xr-x 2 root root 4.0K Jun 8 2011 initrd
drwxr-xr-x 20 root root 12K Dec 9 2012 lib
drwx------ 2 root root 16K Jun 7 2011 lost+found
drwxr-xr-x 4 root root 4.0K Jul 3 01:56 media
drwxr-xr-x 9 root root 4.0K Apr 15 00:06 mnt
drwxr-xr-x 8 root root 4.0K Jun 30 23:19 opt
dr-xr-xr-x 198 root root 0 Jun 15 13:10 proc
drwxr-x--- 28 root root 4.0K Jul 20 21:42 root
drwxr-xr-x 2 root root 12K Dec 9 2012 sbin
drwxr-xr-x 2 root root 4.0K Apr 3 2011 srv
drwxr-xr-x 12 root root 0 Jun 15 13:10 sys
-rw-r--r-- 1 root root 0 Jun 12 18:40 thisismageia
drwxrwxrwt 69 root root 36K Jul 20 22:04 tmp
drwxr-xr-x 14 root root 4.0K Nov 6 2011 usr
drwxr-xr-x 18 root root 4.0K Jul 2 2011 var
chaouche@karabeela /mnt/ubuntu/storage $
파일 이름에 공백이 있으면 탭 키를 눌렀을 때 \ “”로 바뀌었을 것입니다.
답변
이름이 비어있는 파일을 가질 수 없습니다. 당신이 가진 것은 이름이 완전히 공백이거나 인쇄 불가능한 문자로 구성된 파일입니다.
파일 이름이 정확히 무엇인지 보려면을 실행하십시오 LC_CTYPE=C ls -b
. 이것은 공백 또는 인쇄 불가능한 모든 문자를 8 진 이스케이프로 대체합니다. 예를 들어, 이름이 단일 폭이 0 인 파일은로 표시됩니다 \342\200\213
.
이름이 좋은 파일을 제외하는 glob으로이 파일을 분리 할 수 있습니다. 예를 들어 이름이 문자로 시작하지 않는 파일을 나열 할 수 있습니다.
chaouche@karabeela /mnt/ubuntu/storage $ ls -d [^A-Za-z]*
옵션을 잊지 마십시오 . 디렉토리 자체가 아닌 내용 -d
이 ls
나열됩니다.
적절한 이름을 갖도록 파일 이름을 바꿔야합니다. 쉘의 완성에 의존하거나이 파일과 일치하는 glob를 사용할 수 있습니다.
mv [^A-Za-z]* windows-programs
답변
이름에 공백이나 인쇄 할 수없는 문자 만있는 디렉토리 일 수 있습니다. 또한 ‘.’이외의 항목이 하나만있는 것 같습니다. 그리고 ‘..’이기 때문에 첫 번째 명령 출력의 두 번째 열에 ‘3’이 표시됩니다. 다음과 같이 항상 stat
디렉토리 이름을 인쇄하는 데 사용할 수 있습니다 stat -f "'%N'" *
. 인쇄 할 수없는 경우 파이프로 연결 cat -v
하거나 od -c
실제 내용을 확인해야 할 수 있습니다.
제거하려면 아마도 rmdir -- 'dirname'
(디렉토리 이름으로 ‘dirname’을 대체하십시오. 인쇄 할 수없는 이름이있는 경우 glob를 사용해야 할 수도 있습니다), 이전에 말했듯이 내용이있는 것처럼 보입니다. 그 디렉토리로 내려 가서 cd -- 'dirname'
내용을 검사해야합니다.
rm -rf
디렉토리 이름 지정 문제가 엉망이기 때문에 모든 비용을 사용하지 않는 것이 좋습니다 .