GNU/Linux >> Linux Esercitazione >  >> Linux

Come toccare un file e mkdir se necessario in una riga

In perl, usando uno dei miei moduli preferiti:Path::Tiny.

path("/opt/test/test.txt")->touchpath;

Dal documento:

Combina mkpath e tocco. Crea la directory padre se non esiste, prima di toccare il file.


Mi piace scrivere molto poco, quindi ho inserito questo comando in un nome fn nel mio .profile, ma ho usato questa formulazione per anni prima di farlo:

mkdir -p dirname/sub/dir && touch $_/filename.ext

La variabile $_ memorizza l'ultimo argomento del comando precedente. Abbastanza utile da sapere in generale.


mkdir B && touch B/myfile.txt

In alternativa, crea una funzione:

   mkfile() { 
    mkdir -p $( dirname "$1") && touch "$1" 
   }

Eseguilo con 1 argomento:filepath. Dicendo:

mkfile B/C/D/myfile.txt

creerebbe il file myfile.txt nella directory B/C/D.


In uno script di shell, puoi semplicemente fare:

mkdir -p /opt/test && touch /opt/test/test.txt

mkdir -p non fallirà (e non farà nulla) se la directory esiste già.

In perl, usa make_path dal File::Path module, quindi crea il file come preferisci. make_path inoltre non fa nulla se la directory esiste già, quindi non c'è bisogno di controllare tu stesso.


Linux
  1. Come spostare una riga in un file di testo su o giù di una riga?

  2. Come aggiungere più righe a un file?

  3. Codificare il contenuto del file e farlo eco come una riga?

  4. Come contare il numero di righe in un file in Linux (esempi di comandi wc e nl)

  5. Come posso elencare un nome file per riga di output in Linux?

Come leggere un file riga per riga in Bash

Come eliminare file e directory in Linux dalla riga di comando

Come dividere un file di grandi dimensioni in parti a numeri di riga dati

Come lavorare con hardlink e softlink in Linux

Come controllare l'utilizzo di Inode da cPanel e dalla riga di comando?

Come si esegue il gunzip di un file e si conserva il file .gz?