Se você acha que precisará disso com mais frequência e não deseja digitar o caminho duas vezes todas as vezes, também pode criar uma função Bash ou um script para ele.
Função Bash (anexe esta linha a ~/.bashrcpara que ela permaneça disponível para o usuário, caso contrário ela desaparecerá novamente quando você sair do terminal):
posso editar o touch comando original e adicionar a opção -p?
MA Heshmat Khah
3
@HeshmatKhah Deve ser possível, mas não é recomendável ocultar os executáveis do sistema com seus próprios scripts ou funções. Você poderia usar o nome touch-p(sem espaço!) Em vez de touch2, se preferir o "p", mas eu não tentaria substituir o comando original.
Byte Commander
1
Note que você pode usar a remoção sufixo em vez de dirnamebem, ou seja, você poderia fazer mkdir -p "${1%/}" && touch "$1", mesmo que askubuntu.com/a/928544/295286
Sergiy Kolodyazhnyy
7
Pode-se usar o installcomando com -Dbandeira.
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$
Se tivermos vários arquivos, convém considerar o uso de uma lista de itens (lembre-se de citar itens com espaços) e iterar sobre eles:
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
Ou, alternativamente, com array:
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
Com essa abordagem, o novo arquivo obtém permissões executáveis por padrão. Para dar as mesmas permissões que receberia com o toque, pode-se usarinstall -m 644 -D /dev/null <filepath>
ricab 10/09
1
Para esse fim, você pode criar sua própria função, exemplo abaixo:
Primeiro, inserimos uma função no final do arquivo ~ / .bashrc usando o comando echo. A função flag -p-in permite criar pastas aninhadas, como fldr2, do nosso exemplo. Finalmente, atualizamos o arquivo com o comando source e, finalmente, executamos o comando mkfile criado recentemente
touch
comando original e adicionar a opção-p
?touch-p
(sem espaço!) Em vez detouch2
, se preferir o "p", mas eu não tentaria substituir o comando original.dirname
bem, ou seja, você poderia fazermkdir -p "${1%/}" && touch "$1"
, mesmo que askubuntu.com/a/928544/295286Pode-se usar o
install
comando com-D
bandeira.Se tivermos vários arquivos, convém considerar o uso de uma lista de itens (lembre-se de citar itens com espaços) e iterar sobre eles:
Ou, alternativamente, com array:
fonte
install -m 644 -D /dev/null <filepath>
Para esse fim, você pode criar sua própria função, exemplo abaixo:
Primeiro, inserimos uma função no final do arquivo ~ / .bashrc usando o comando echo. A função flag -p-in permite criar pastas aninhadas, como fldr2, do nosso exemplo. Finalmente, atualizamos o arquivo com o comando source e, finalmente, executamos o comando mkfile criado recentemente
fonte