Создать файл и его родительский каталог

Для Remmina 1.2 на Ubuntu 16.10 LTS расположение конфигурации Remmina:

~ / snap / remmina /
1
задан 24 June 2017 в 16:21

2 ответа

Можно использовать команду install с флагом -D.

bash-4.3$ install -D /dev/null mydir/one/two

bash-4.3$ tree mydir
mydir
└── one
    └── two

1 directory, 1 file
bash-4.3$ 

Если у нас есть несколько файлов, мы можем рассмотреть возможность использования списка элементов (обратите внимание, не забудьте указать элементы с пробелы) и итерации по ним:

bash-4.3$ for i in mydir/{'subdir one'/{file1,file2},'subdir 2'/{file3,file4}} ; do 
> install -D /dev/null "$i"
> done
bash-4.3$ tree mydir
mydir
├── one
│   └── two
├── subdir 2
│   ├── file3
│   └── file4
└── subdir one
    ├── file1
    └── file2

Или, альтернативно, с массивом:

bash-4.3$ arr=( mydir/{'subdir one'/{file1,file2},'subdir 2'/{file3,file4}} )
bash-4.3$ for i in "${arr[@]}"; do  install -D /dev/null "$i"; done
bash-4.3$ tree mydir
mydir
├── one
│   └── two
├── subdir 2
│   ├── file3
│   └── file4
└── subdir one
    ├── file1
    └── file2
2
ответ дан 23 May 2018 в 07:57

С этой целью вы можете создать свою собственную функцию, пример ниже:

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

Сначала мы вставляем функцию в конец файла ~ / .bashrc с помощью команды echo. Флаг -p в функции позволяет создавать вложенные папки, такие как fldr2, из нашего примера. Наконец, мы обновляем файл с помощью команды source и в конечном итоге выполняем недавно созданную команду mkfile

0
ответ дан 23 May 2018 в 07:57

Другие вопросы по тегам:

Похожие вопросы: