Di perl, menggunakan salah satu modul favorit saya:Path::Tiny.
path("/opt/test/test.txt")->touchpath;
Dari dokumen:
Menggabungkan mkpath dan sentuhan. Membuat direktori induk jika tidak ada, sebelum menyentuh file.
Saya suka mengetik sangat sedikit, jadi saya memasukkan perintah ini ke fn bernama di .profile saya, tetapi saya menggunakan formulasi ini selama bertahun-tahun sebelum saya melakukannya:
mkdir -p dirname/sub/dir && touch $_/filename.ext
Variabel $_
menyimpan argumen terakhir ke perintah sebelumnya. Cukup berguna untuk mengetahui tentang keseluruhan.
mkdir B && touch B/myfile.txt
Atau, buat fungsi:
mkfile() {
mkdir -p $( dirname "$1") && touch "$1"
}
Jalankan dengan 1 argumen:filepath. Mengatakan:
mkfile B/C/D/myfile.txt
akan membuat file myfile.txt di direktori B/C/D.
Dalam skrip shell, Anda cukup melakukan:
mkdir -p /opt/test && touch /opt/test/test.txt
mkdir -p
tidak akan gagal (dan tidak akan melakukan apa pun) jika direktori sudah ada.
Dalam perl, gunakan make_path
dari File::Path
module, lalu buat file sesuai keinginan Anda. make_path
juga tidak melakukan apa-apa jika direktori sudah ada, jadi tidak perlu memeriksa sendiri.