Jak utworzyć pusty plik z wiersza poleceń

189

Jak mogę utworzyć pusty plik z wiersza poleceń?

NES
źródło

Odpowiedzi:

237

Użyj touchpolecenia:

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.

Przykład:

touch newfile
Izajasza
źródło
14
Możesz także użyć touch newfile.txtinnego rozszerzenia (jeśli musisz określić rozszerzenie).
gotqn
@gotqn dla python touch newfile.py i dla ruby ​​newfile.rb?
kouty
3
Ale jeśli newfilejuż istnieje i nie jest pusty, touch newfilepozostawi ci niepusty plik. Może nie to, czego chciałeś.
Camille Goudeseune,
@CamilleGoudeseune Myślę, że jeśli newfilejuż istnieje, touchpolecenie po prostu zaktualizuje znacznik czasu pliku (do czego dokładnie to polecenie) bez edytowania zawartości pliku.
C0deDaedalus
Nie musicie tak myśleć; to prawda! Ale nie o to pyta pytanie.
Camille Goudeseune
81
> newfile

Będzie również utworzyć pusty plik. Jeśli plik już istnieje, zostanie obcięty (opróżniony). Aby zachować zawartość pliku, użyj >>do dołączania jak w:

>> file

Nawet jeśli plik istnieje, zawartość pozostanie nietknięta.

Edycja : jeśli nie masz żadnych treści do napisania, ta jest szybsza:

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

Uwaga. :jest tu polecenie. To nie jest część pytania.

balki
źródło
To jest nowe. Czy jest to specyficzne dla bash?
tshepang 15.01.11
Nie wydaje mi się Każda powłoka, która umożliwia przekierowanie strumienia wyjściowego do pliku, powinna to obsługiwać. Spowoduje to obcięcie pliku, jeśli już istnieje. korzystanie z dotyku jest bezpieczne, jeśli nie chcesz go opróżniać.
balki 15.01.11
Wow, myślę, że to się nazywa oszustwo systemowe
banarun
12
cat /dev/null > file1.ext 

dokładny sposób istnieje również inny sposób

echo "" > file2.ext 

Różnica polega na tym, że plik1.ext będzie wynosił zero bajtów, a plik2.ext będzie miał jeden bajt. Możesz to sprawdzić przez

ls -l file*.*
indianwebdevil
źródło
10
Nie, „echo” „>” nie tworzy pustego pliku, lecz tworzy plik zawierający nowy wiersz. Jeśli z jakiegoś powodu chcesz użyć echa, aby utworzyć pusty plik, musisz użyć polecenia „echo -n” „>” lub po prostu „echo -n>”
andol
7

Za pomocą vimedytora możesz również utworzyć pusty plik.

vim filename

Następnie zapisz

:wq
nrider
źródło
Cóż, w tym przypadku nie jest to żaden edytor tekstu, ale vim.
Nephente
2

Komenda

echo -n > file

tworzy pusty plik, jeśli twoja wersja echoobsługuje przełącznik -n.

Lub możesz użyć printf

printf '' > file
AB
źródło
0

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

Zasadniczo implementacja w Pythonie touch.

Dzięki temu możemy go skrócić:

$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt 
Sergiy Kolodyazhnyy
źródło