Jak utworzyć pusty plik z wiersza poleceń


189

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

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

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.


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*.*

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

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

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 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.