1163
Touch a file in Linux (programming.dev)
you are viewing a single comment's thread
view the rest of the comments
[-] null@slrpnk.net 40 points 7 months ago

Is there a command that's actually just for creating a new file?

[-] gamma@programming.dev 36 points 7 months ago

Nope. If you open a nonexistent path and you have permissions to write to that directory, then that file is created.

[-] ezchili@iusearchlinux.fyi 14 points 7 months ago
[-] 48954246@lemmy.world 21 points 7 months ago* (last edited 7 months ago)

Feels dangerous to run. What happens if the file already exists and has something important in it?

touch -a is probably better

[-] gaterush@lemmy.world 9 points 7 months ago

The other command could just be printf '' >> file to not overwrite it. Or even simpler >>file and then interrupt

[-] owsei@programming.dev 10 points 7 months ago

or :>>file then you don't need to interrupt

[-] 4am@lemm.ee 6 points 7 months ago

.“:>>” is “append null” right? Do you get a file with a single ASCII NUL or is it truly empty?

[-] 0x0@lemmy.dbzer0.com 14 points 7 months ago

Not really. I believe : is the "true" builtin. So it's like running a program that exits with zero and writes nothing to stdout. The >> streams the empty stdout into the named file.

[-] al177@lemmy.sdf.org 4 points 7 months ago* (last edited 7 months ago)

$ :|wc -c 0 $ touch /tmp/f; :>>/tmp/f; wc -c /tmp/f 0 /tmp/f

[-] gaterush@lemmy.world 3 points 7 months ago

that's awesome, did not know about that handy operator!

[-] owsei@programming.dev 3 points 7 months ago

Yeah!

it's basically a noop, I use it as a placeholder when I'm writing a script, since bash doesn't accept code blocks with no commands

[-] Midnitte@beehaw.org 8 points 7 months ago

I mean, nano filename will work, but there's no mkfile that I can find...

$>filename would also work, but it's not explicitly for creating a new file

[-] tranzystorek_io@beehaw.org 6 points 7 months ago

most shells will accept outputting from a silent command to a file, e.g. :> foo.txt (where : is the posix synonym to the true command)

[-] dan@upvote.au 4 points 7 months ago

How often do you actually need a blank file though? Usually you'd be writing something in the file.

[-] null@slrpnk.net 1 points 7 months ago

I'm betting that's why none ever materialized. Most tools that can manipulate a file, can also create that file first, so there's just never been a usecase.

Right-clicking the desktop to create a new txt file in Windows feels so natural, but I can't really think of any time you'd want to create a new file and do nothing with it in a CLI.

[-] schnurrito@discuss.tchncs.de 3 points 7 months ago

You might if some other program checks whether that file exists and behaves differently depending on that.

[-] null@slrpnk.net 1 points 7 months ago

But even still, what's a realistic usecase that would that involve needing a blank, unmodified file in that instance?

[-] indepndnt@lemmy.world 6 points 7 months ago

One use case is if you're running a web server that is configured to return a "maintenance" page instead of the live site if a particular file exists. Which is actually pretty cool because then you don't have to update the config when you need to do something or let your users get a bunch of 502 errors, you just touch maintenance and you're good.

[-] null@slrpnk.net 2 points 7 months ago

That's a good one!

this post was submitted on 17 Mar 2024
1163 points (97.5% liked)

Programmer Humor

19480 readers
736 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS