how to create a file and make it executable in one command?
how to create a file and make it executable in one command?
You mean like
touch file && chmod +x file ?
Write an alias/function to do it and add to your bashrc.
function nanox() { nano $1 chmod +x $1 }You could define a function that takes a parameter, which touches a file with the parameters value, chmods it and then opens it with nano?
create_exec() { touch "$1" chmod +x "$1" nano "$1" }Then you could type create_exec file.sh and it would do the rest for you.
Here’s one I have saved in my shell aliases.
nscript() { local name="${1:-nscript-$(printf '%s' $(echo "$RANDOM" | md5sum) | cut -c 1-10)}" echo -e "#!/usr/bin/env bash\n#set -Eeuxo pipefail\nset -e" > ./"$name".sh && chmod +x ./"$name".sh && hx ./"$name".sh } alias nsh='nscript'Admittedly much more complicated than necessary, but it’s pretty full featured. first line constructs a filename for the new script from a generated 10 character random hash and prepends “nscript” and a user provided name.
The second line writes out the shebang and a few oft used bash flags, makes the file executable and opens in in my editor (Helix in my case).
The third line is just a shortened alias for the function.
You want the install command.
touch file && chmod +x file is good but this here is the one true command for the purpose.
install -m755 /dev/null target was the first thing I thought of. I would never use this but it is a single command.
&& to use multiple commands one after the other, don’t use ;.
- && means execute if the command before ended successfully
- || means execute if the commnad before failed
failed
- ; just means execute the command - no matter if succeeded or failed
- && means execute if the command before ended successfully
- || means execute if the commnad before failed
- ; just means execute the command - no matter if succeeded or failed
touch file && chmod +x file