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.