Właśnie zauważyłem, że mam plik o nazwie ~
w moim ~
katalogu.
$ ls -la ~
...
-rw-r----- 1 x1 x1 733962240 Mar 1 17:55 ~
...
Jakiś pomysł jak mogę mv
czy rm
nie?
linux
bash
filesystems
scrrr
źródło
źródło
Odpowiedzi:
Całkiem doskonałe rozwiązanie, jeśli chodzi o pliki, których nie można normalnie usunąć:
Pierwsza kolumna pokazuje numer i-węzła plików.
Spowoduje to usunięcie pliku z określonym numerem i-węzła po weryfikacji.
źródło
-delete
zamiast-exec
, a potem zdałem sobie sprawę, że używasz tego,rm -i
co jest dobrym pomysłem, więc wycofałem się. Przepraszam.Powinieneś być w stanie odnieść się do tego pliku jako
~/~
(bez cudzysłowów), ponieważ rozszerzenie tyldy stosuje tylko tyldy (~
) na samym początku słowa.źródło
rm ./~
tego samego powodu, co powiedziałeś./~
dosłownie oznacza „plik lub folder o nazwie~
w bieżącym katalogu” . Nie ma hacków takich jak znaki specjalne lub odwołania do i-węzłów../~
. Po pięciu latach moja pamięć jest trochę rozmyta, ale myślę, że właśnie dlatego zasugerowałem,~/~
a nie bardziej normalne./~
: Pytanie dotyczy konkretnie „pliku o nazwie~
z katalogu domowego [OP]] ; nie „w bieżącym katalogu”.Cytuj (
rm '~'
) lub Escape (rm \~
).Zawsze jest to jeden z nich (również np.
$
) Lub „dodaj”,--
aby zapobiec interpretacji nazwy pliku jako argumentu:rm -- -i
usuwa plik o nazwie-i
; przydatne również,rm -- *
gdy chcesz usunąć wszystkie pliki w bieżącym katalogu: Nieprzypadkoworm -f *
tylko dlatego, że plik ma taką nazwę.źródło
--
zatrzymuje tylko interpretację następujących argumentów jako parametrów - nie uniemożliwia powłoce wykonania ekspansji (np.*
), co dzieje się tutaj. (Wiem, że zasugerowałeś to jako alternatywę dla innych sytuacji, ale ostrzeżenie byłoby dobre.)