Soru İçinde bir dizin ve dosya oluşturmak için bir komut linux komutu


Mevcut dizinim olduğunu varsayalım bir. Bir dizin oluşturmak istiyorum B ve içinde "myfile.txt" bir dosya var B.

Terminalden bir komutta bunu nasıl yapabilirim?

Düzenle:

Dizin birden çok kez iç içe olabilir. Ben oluşturmak isteyebileceğim gibi B / C / D ve sonra bunun içinde "myfile.txt". Ben de dizin bölümünü tekrarlamak istemiyorum.

Aşağıdaki komut herhangi bir düzeyde dizin oluşturacaktır.

mkdir -p B/C/D 

ve

mkdir -p B/C/D && touch B/C/D/myfile.txt

dizin ve dosyayı oluşturacak. Ama sonra dizin bölümünü tekrarlamak istemiyorum touch Komut. Mümkün mü?


18
2017-08-01 06:25


Menşei


Bir kabuk komut dosyası yaz. - Narendra Pathai


Cevaplar:


mkdir B && touch B/myfile.txt

Alternatif olarak, bir işlev oluşturun:

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

2 argüman ile çalıştırın: oluşturma ve dosya adı. diyor:

mkfile B/C/D myfile.txt

dosyayı oluşturur myfile.txt dizinde B/C/D.


27
2017-08-01 06:27



Ancak bu, "gerçek" bir komuttan farklı olarak SEKME işlemini tamamlamaz. mkdir yapar. - chx


Bu amaçla kendi fonksiyonunuzu yaratabilirsiniz. Örneğin:

$ echo 'mkfile() { mkdir -p "$(dirname "$1")" && touch "$1" ;  }' >> ~/.bashrc
$ source ~/.bashrc
$ mkfile ./fldr1/fldr2/file.txt

Açıklama:

  • Fonksiyonun sonuna ekle ~/.bashrc kullanarak dosya echo komuta
  • -p bayrak, iç içe geçmiş klasörleri oluşturmak içindir fldr2
  • Güncelleme ~/.bashrc ile dosya source komuta
  • Kullan mkfile dosya oluşturmak için işlev

0
2018-04-15 08:05





devnull en Cevap bir işlev sağlar:

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

Bu işlev benim için işe yaramadı (WSL Ubuntu üzerinde bash 4.3.48 çalıştırıyorum), ancak çift çizgi çıkardıktan sonra işe yaramadı. Yani, bu benim için çalıştı:

echo 'mkfile() { mkdir -p "$1" && touch "$1"/"$2" }' >> ~/.bash_profile
source ~/.bash_profile
mkfile sample/dir test.file

0
2018-06-15 18:27





Aşağıdaki basit bir komut yeterlidir.

mkdir a && touch !$/file.txt

Teşekkürler


0
2017-07-24 16:25





Bu işe yarayabilir:

mkdir {{FOLDER NAME}}
cd {{FOLDER NAME}}
touch {{FOLDER NAME}}/file.txt

-2
2018-06-13 05:53