Çöp kutusu nasıl boşaltılır?


2

Çöp Kutumda, çöpleri boşalttığımda kaybolmayan garip bir dosya var. Dosya adı şöyle görünür:

␀␀␀õ␀␀.õ␀

Görünüşe göre dosya / Birimler / NAME NAME / .Trashes / 501 / ("NAME NAME" benim önyükleme kampım Windows birimidir, bu nedenle neden bir .Trashes dizini olduğundan bile emin değilim. "Ls" denemek istersem Bu dosyayı veya hatta bu dizini alıyorum:

ls: \004␀␀␀õ\001␀␀.õ\001␀: File name too long

Aynı şey "sudo ls -le", "sudo ls -la" veya "sudo ls -i" yi denersem de olur.

Ve rm ya da hatta "bul. -Type f -print0 | sudo xargs -0 rm" kullanmaya çalıştığımda benzer sonuçlar

Ondan nasıl kurtulabilirim?


izinlerini kontrol etmek iyi olurdu, ls -le için ne alıyorsun?
kobbal

@ cobbal, Silmek için "sudo" kullanarak zaten bahsettiğimi not edersiniz, değil mi?
Paul Tomblin

Yanıtlar:


3

Bu kişi de aynı sorunu yaşıyordu ve Windows'ta disk kontrolü yaparak sorunu çözdü.


Neredeyse tamamen aynı sahte dosya adına sahip olmaları şaşırtıcıydı. Mac OS FAT32 dosya sistemi sürücüsünde, FAT32 dosya sisteminde oluşturması mümkün olmayan bir dosya oluşturmasına izin veren bir hata olması gerektiğini düşünüyorum.
Paul Tomblin

3

Denenecek tek şey dizini listelemek için ls'den daha düşük seviyeli çağrıları kullanmak olacaktır.

python -c 'import os; print repr(os.listdir("/Volumes/NO NAME/.Trashes/501/"))'

ve eğer çalışırsa, unlink()işlevi kullanmayı deneyin

düzenleme: deneyin bağlantısını kaldırmak

python -c 'import os; os.unlink("/Volumes/NO NAME/.Trashes/501/\x04\xe2\x90\x80\xe2\x90\x80\xe2\x90\x80o\xcc\x83\x01\xe2\x90\x80\xe2\x90\x80.o\xcc\x83\x01\xe2\x90\x80")'

Bu işe yarar, (['\ x04 \ xe2 \ x90 \ x80 \ xe2 \ x90 \ x80 \ xe2 \ x90 \ x80o \ x80 \ xe2 \ x90 \ x80 \ xe2 \ x90 \ x80 \ x80 \ xe \ \ x83 \ x01 \ xe2 \ x90 \ x80 \ xe \ \ x90 \ x80 \ x80.o \ xcc \] döndürür x83 \ x01 \ xe2 \ x90 \ x80 ']) ancak python'u bilmiyorum bu yüzden dosyanın bağlantısını kaldırmak için nasıl kullanacağımı bilmiyorum. Sanırım perl'de denemek zorundayım.
Paul Tomblin

Perl bunu yapmıyor gibi görünüyor. sudo perl -e 'opendir DIR, "."; while ($ line = readdir (DIR)) {print "\ n [", $ line, "] \ n"; unlink ($ line);} 'dosyayı listeler, ancak silmez.
Paul Tomblin

Python'da silmeye çalışmanın sonucu: Geri izleme (en son yapılan arama en son): Dosya "<string>", 1. satır, <module> OSError: [Errno 63] Dosya adı çok uzun: '/ Ciltler / NO ADI /. Çöpler / 501 / \ x04 \ XE2 \ x90 \ x80 \ XE2 \ x90 \ x80 \ XE2 \ x90 \ x80o \ xcc \ X83 \ x01 \ XE2 \ x90 \ x80 \ XE2 \ x90 \ x80.o \ xcc \ X83 \ x01 \ xe2 \ x90 \ x80 '
Paul

2

İnode ile silmeyi denediniz mi?

ls -i

dosyaları ve inode numaralarını gösterecek

$ ls -i *.log
 694197 alf.log         694719 mb.log
 694181 fsck_hfs.log     24190 secure.log
 802696 hdiejectd.log   694195 system.log
1094966 install.log     694396 windowserver.log
  24189 ipfw.log

Ardından inode ile kaldırmak için find komutunu kullanın (mb.log dosyasını yukarıdan silmek istediğimi söyleyin):

find . -inum 694719 -exec rm {} \;

Ne yazık ki, "ls -i" de aynı sorun var: ls -i ls: \ 004␀␀␀õ \ 001␀␀.õ \ 001␀: Dosya adı çok uzun
Paul Tomblin

1

Windows'a önyükleme yapmayı deneyebilir ve dosyayı silip silemediğini (gerçekten görebildiğini varsayarak) görebilirsiniz.


Windows, özel araçların yardımı olmadan HFS + bölümünü okumaz. Yaralanmalara hakaret eklemek için sadece okunur.
LiraNuna

1
Onun açılış kampı hacminin olduğunu söyledi, bu yüzden Windows tarafından okunabilir olmalı.
mark4o
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.