Vraag Hoe maak je een leeg bestand vanaf de opdrachtregel


Hoe kan ik een leeg bestand maken vanaf de opdrachtregel?


163
2018-01-14 19:03


oorsprong




antwoorden:


Gebruik de touch opdracht:

The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.

Voorbeeld:

touch newfile

201
2018-01-14 19:06



Je kunt gebruiken touch newfile.txt of een andere extensie (als u de extensie moet opgeven). - gotqn
@gotqn voor python touch newfile.py en voor ruby ​​newfile.rb? - kouty
Maar als newfile bestaat al en is dan niet leeg touch newfile zal je verlaten met een niet leeg het dossier. Misschien niet wat je wilde. - Camille Goudeseune
@CamilleGoudeseune I think If newfile bestaat al, touch commando zal gewoon werk de tijdstempel van het bestand bij (wat precies dat commando is) zonder de inhoud van het bestand te bewerken. - C0deDaedalus
U hoeft dat niet te denken; het is waar! Maar het is niet wat de vraag stelde. - Camille Goudeseune


> newfile

Zal ook creëren een leeg bestand. Als het bestand al bestaat, zal het dat zijn afgeknot (Leeg). Gebruik als u de inhoud van het bestand wilt behouden >> voor toevoegen als in:

>> file

Zelfs als het bestand bestaat, blijft de inhoud onaangetast.

Bewerk: Als u geen inhoud heeft om te typen, is deze sneller:

user@host$ :> newfile
user@host$ :>> new_or_existing_file

Notitie. : is de opdracht hier. Het maakt geen deel uit van de prompt.


74
2018-01-14 19:38



Dat is nieuw. Is het bash-specifiek? - Tshepang
Ik denk het niet. Elke shell die het doorsturen van de outputstream naar een bestand toestaat, zou dit moeten ondersteunen. Hiermee wordt het bestand afgekapt als het al bestaat. aanraken is veilig om te gebruiken als je het niet wilt legen. - balki
Wow nu denk ik dat dit het cheaten van het systeem wordt genoemd - banarun


cat /dev/null > file1.ext 

de exacte manier waarop er ook een andere manier is

echo "" > file2.ext 

Het verschil is file1.ext is nul bytes en file2.ext is één byte. U kunt dit controleren door

ls -l file*.*

12
2018-01-15 06:56



Nee, 'echo' "> 'maakt geen leeg bestand aan, het maakt een bestand aan dat een nieuwe regel bevat. Als je om wat voor reden dan ook echo wilt gebruiken om een ​​leeg bestand te maken, moet je 'echo -n' "> 'gebruiken, of gewoon' echo -n> ' - andol


Gebruik makend van vim editor kunt u ook een leeg bestand maken.

vim filename

Sla dan op

:wq

7
2018-04-03 09:41



Nou, in dit geval geen teksteditor maar vim. - Nephente


Het bevel

echo -n > file

maakt een leeg bestand aan, als uw versie van echo ondersteunt de -n-schakelaar.

Of je zou kunnen gebruiken printf

printf '' > file

2
2018-06-22 09:47





Python one-liner:

$ python -c 'import sys,os;f=sys.argv[1];os.utime(f,None) if os.path.exists(f) else open(f,"a").close' myfile.txt

Kortom, python implementatie van touch.

We kunnen het hiermee korter maken:

$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt 

0
2017-07-10 11:17