Boş ada sahip bir dosyayı nasıl oluşturursunuz?


9

Nasıl bilmiyorum, ama boş bir dosya adı ile bir dosya oluşturdum, orada bir boşluk olduğundan şüpheliyim (sonunda neden açıklayacağım):

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 dosyasını nasıl kaldıracağımı sordum ve bir kişi diğer tüm dosyaları uzaklaştırarak daha sonra çok ilginç bir davranış sağlayan sekme tamamlamayı kullanmamı önerdi:

# 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 $

Dosya adında bir boşluk olsaydı, sekme tuşuna bastığımda \ "" ile değiştirilirdi, ama olmadı.


5
Görünüşe göre üç dosya içeren bir dizin değil.
Bananguin

2
Boş dosya dışında her şeyi başka yere taşıdığınız dizini hâlâ sakladığınızı varsayarsak ne olur file *?
Joseph

Ne yazık ki mv komutuyla dosyayı yeniden adlandırdım.
ychaouche


2
Bu soru bunun bir kopyası değil.  Bu soru, yanlışlıkla yazdırılan karakterler içermeyen, yanlışlıkla oluşturulmuş bir dosya (veya dizin) ile başa çıkmak için pratik tekniklerle ilgilidir.  Bu diğer soru , isterseniz böyle bir dosya oluşturabileceğiniz yolların teorik, varsayımsal, başıboş bir tartışmasıdır ve sonrasındakiyle ilgili hiçbir şey söylemez.
G-Man, 19

Yanıtlar:


14

Boş ada sahip bir dosyaya sahip olmak mümkün değildir. Sahip olduğunuz, adı tamamen boş veya yazdırılamayan karakterlerden oluşan bir dosyadır.

Dosya adının tam olarak ne olduğunu görmek için çalıştırın LC_CTYPE=C ls -b. Bu, tüm boş veya yazdırılamayan karakterleri sekizlik çıkışlarla değiştirir. Örneğin, adı sıfır genişliğinde tek bir boşluk olan bir dosya olarak listelenir \342\200\213.

Bu dosyayı, güzel bir ada sahip dosyaları hariç tutan bir glob ile izole edebilirsiniz. Örneğin, adı bir harfle başlamayan dosyaları listelemeyi deneyebilirsiniz.

chaouche@karabeela /mnt/ubuntu/storage $ ls -d [^A-Za-z]*

Seçeneği unutmayın -d, böylece lsdizin içeriğini değil içeriğini listeler.

Dosyayı makul bir ada sahip olacak şekilde yeniden adlandırmalısınız. Kabuğunuzun tamamlanmasına güvenebilir veya yalnızca bu dosyayla eşleşen bir glob kullanabilirsiniz.

mv [^A-Za-z]* windows-programs

5

Adında yalnızca boşluk veya yazdırılmayan karakterlerin bulunduğu bir dizin olabilir. Ayrıca, içinde 'dışında' sadece bir giriş var gibi görünüyor. ve '..', bu yüzden ilk komutunuzun çıktısının ikinci sütununda '3'ü görürsünüz. Her zaman kullanabilirsiniz statile, dizinin adını yazdırmak için: stat -f "'%N'" *. O basılamaz konusuysa, içine boru kendisine sahip olabilir cat -vveya od -caslında ne olduğunu görmek için.

Kaldırmak için muhtemelen çalıştırmanız gerekecek rmdir -- 'dirname'('dirname' yerine dizinin adını yazmalısınız. İçinde yazdırılamaz isimler varsa globs kullanmanız gerekebilir), ancak daha önce söylediğim gibi, içeriğe sahip olduğu görülüyor, ile birlikte bu dizine cd -- 'dirname'inmeli ve içeriğini incelemelisiniz.

rm -rfDizin adlandırma sorununun üstesinden gelmek kolay olduğundan, pahasına kullanmaktan kaçınmanızı öneririm .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.