Použijte &&
pro kombinaci dvou příkazů v jednom řádku shellu:
COMMAND1 && COMMAND2
mkdir -p /my/other/path/here/ && touch /my/other/path/here/cpedthing.txt
Poznámka:Dříve jsem doporučoval použití ;
k oddělení těchto dvou příkazů, ale jak poukázal @trysis, je pravděpodobně lepší použít &&
ve většině situací, protože v případě COMMAND1
selže COMMAND2
nebude ani popraven. (V opačném případě by to mohlo vést k problémům, které byste možná nečekali.)
Udělejte to pomocí /usr/bin/install:
install -D /my/long/path/here/thing.txt /my/other/path/here/cpedthing.txt
když nemáte zdrojový soubor:
install -D <(echo 1) /my/other/path/here/cpedthing.txt
Nejprve musíte vytvořit všechny nadřazené adresáře.
FILE=./base/data/sounds/effects/camera_click.ogg
mkdir -p "$(dirname "$FILE")" && touch "$FILE"
Pokud chcete být kreativní, můžete vytvořit funkci:
mktouch() {
if [ $# -lt 1 ]; then
echo "Missing argument";
return 1;
fi
for f in "[email protected]"; do
mkdir -p -- "$(dirname -- "$f")"
touch -- "$f"
done
}
A pak jej použijte jako jakýkoli jiný příkaz:
mktouch ./base/data/sounds/effects/camera_click.ogg ./some/other/file