"Mv file" e ora manca


32

In una finestra del terminale, ho digitato:

mv filename ..\..      [Note the wrong slash.]

Ora non riesco a trovarlo. Andato. Ho eseguito alcune ricerche e ho cercato i file cancellati recuperabili. Niente. Poof. Mi serve proprio per usare un computer Windows prima.

Qualcuno sa dove potrebbe essere andato?


find / -iname thefilename -print può essere ?
Sergiy Kolodyazhnyy,

@Serg Con thefilenamecome nome originale del file, quel findcomando non lo troverà sotto il nuovo nome.
Eliah Kagan,

Mi sono reso conto che subito dopo aver pubblicato il commento. La mia prima risposta in caso di mancanza di un file è l'uso di find, ma quello che non avevo realizzato è che op ha rinominato il file invece di spostarlo
Sergiy Kolodyazhnyy,

Risposte:


70

Non è andato da nessuna parte, è nella directory corrente. È stato rinominato come ....(quattro punti).

Come ogni nome di file che ha .davanti è trattato un file nascosto, quindi è diventato nascosto. Quindi, se lo fai ls, non lo troverai. Come sempre, è necessaria l' opzione -a(o -A) lsper visualizzare i file nascosti, ovvero ls -a(o ls -A) per vederlo.

Consentitemi di scomporlo, avete corso mv filename ..\.., i primi due punti significherebbero la directory principale se lo fosse ../, ma avete usato la barra rovesciata ..\che indica la shell per sfuggire al carattere successivo ma un punto .non ha un significato speciale per la shell. Quindi, lo tratterà come un letterale .e anche l'ultimo .aggiunto, quindi hai quattro punti ....come un nome di file.

Per ripristinare il nome precedente (originale), eseguire mv .... filename.


2
Hahaha ... non mi è mai venuto in mente. Eccolo: "....". Grazie! Immagino che abbia interpretato il primo punto come il punto .hideme.
Giovanni,

2
Posso suggerire la -A(con la A maiuscola). Fa lo stesso di ls -ama esclude .e ...
Paddy Landau,

13

Esegui mv .... filenameper rinominarlo. ( mv ..\.. filenamefunzionerebbe anche, ma \è superfluo - come era nel tuo comando originale.)

  • Il file non è stato eliminato, motivo per cui la ricerca di file cancellati recuperabili non l'ha trovato.
  • Come in Windows, .e le ..voci sono presenti in ogni directory e si riferiscono rispettivamente alle directory "corrente" e "padre". Ma a differenza di Windows, le sequenze di più di due punti non hanno alcun significato speciale. Sebbene sia insolito, sei perfettamente libero di nominare un file normale con un nome costituito interamente da punti, purché sia ​​lungo almeno tre punti.
  • A differenza di Windows, in Ubuntu la shell usa \come carattere di escape, assicurandosi che la shell tratti letteralmente il seguente personaggio anziché dargli un significato speciale. Il .personaggio non ha un significato speciale nella shell (in particolare, la shell non è responsabile del funzionamento delle voci .e ..). Pertanto, al tuo comando, \.era equivalente a ..
  • Come dice heemayl , per impostazione predefinita la maggior parte delle utility non mostra file e directory i cui nomi iniziano con a .. Poiché ....inizia con ., correre lssenza il flag -Ao -anon lo ha rivelato.

1
È esattamente così che l'ho trovato. Mi stavo chiedendo perché il mio "\" non fungesse da fuga, ma niente da sfuggire così trattato normalmente. Ha senso.
Giovanni,

5

è ancora nella stessa directory, solo un file 'nascosto' ora. Puoi recuperarlo con "mv .... nomefile".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.