Cách tạo một tệp trống từ dòng lệnh


190

Làm thế nào tôi có thể tạo một tập tin trống từ dòng lệnh?

Câu trả lời:


237

Sử dụng touchlệnh:

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.

Thí dụ:

touch newfile

14
Bạn cũng có thể sử dụng touch newfile.txthoặc một số tiện ích mở rộng khác (nếu bạn cần chỉ định tiện ích mở rộng).
gotqn

@gotqn cho python chạm newfile.py và cho ruby ​​newfile.rb?
Kouty

3
Nhưng nếu newfileđã tồn tại và không trống, thì touch newfilesẽ để lại cho bạn một tệp không trống . Có lẽ không phải những gì bạn muốn.
Camille Goudeseune

@CamilleGoudeseune Tôi nghĩ rằng nếu newfileđã tồn tại, touchlệnh sẽ chỉ cập nhật dấu thời gian của tệp (đó là lệnh chính xác cho) mà không cần chỉnh sửa nội dung của tệp.
C0deDaedalus

Bạn không cần phải nghĩ rằng; đúng rồi! Nhưng đó không phải là những gì câu hỏi.
Camille Goudeseune

81
> newfile

Cũng sẽ tạo một tập tin trống. Nếu tập tin đã tồn tại, nó sẽ bị cắt ngắn (làm trống). Để giữ nội dung tệp, sử dụng >>để nối thêm như trong:

>> file

Ngay cả khi tập tin tồn tại, nội dung sẽ bị ảnh hưởng.

Chỉnh sửa : Nếu bạn không có bất kỳ nội dung nào để nhập, nội dung này sẽ nhanh hơn:

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

Ghi chú. :là lệnh ở đây. Nó không phải là một phần của dấu nhắc.


Bây giờ là mới. Là bash cụ thể?
tshepang

Tôi không nghĩ vậy. Bất kỳ shell nào cho phép chuyển hướng luồng đầu ra thành tệp đều hỗ trợ điều này. Điều này sẽ cắt bớt tập tin nếu nó đã tồn tại. cảm ứng là an toàn để sử dụng nếu bạn không muốn làm trống nó.
balki

Wow bây giờ tôi nghĩ rằng điều này được gọi là gian lận hệ thống
banarun

12
cat /dev/null > file1.ext 

cách chính xác cũng có một cách khác

echo "" > file2.ext 

Sự khác biệt là file1.ext sẽ là 0 byte và file2.ext sẽ là một byte. Bạn có thể kiểm tra điều này bằng cách

ls -l file*.*

10
Không, 'echo "">' không tạo tệp trống, nó tạo tệp chứa dòng mới. Nếu bạn vì lý do nào đó muốn sử dụng echo để tạo một tệp trống, bạn sẽ phải sử dụng 'echo -n "">', hoặc đơn giản là 'echo -n>'
andol

7

Sử dụng vimtrình chỉnh sửa, bạn cũng có thể tạo một tập tin trống.

vim filename

Sau đó lưu lại

:wq

Vâng, trong trường hợp này không phải bất kỳ trình soạn thảo văn bản nhưng vim.
Nepeavere

2

Lệnh

echo -n > file

tạo một tệp trống, nếu phiên bản echohỗ trợ của bạn chuyển đổi -n.

Hoặc bạn có thể sử dụng 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

Về cơ bản, python thực hiện touch.

Chúng ta có thể làm cho nó ngắn hơn với điều này:

$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.