Câu hỏi Cách tạo tệp trống từ dòng lệnh


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


163
2018-01-14 19:03


gốc




Các câu trả lời:


Sử dụng touch chỉ huy:

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

202
2018-01-14 19:06



Bạn có thể dùng touch newfile.txt hoặc một số phần mở rộng khác, quá (nếu bạn cần phải xác định phần mở rộng). - gotqn
@gotqn cho python touch newfile.py và cho ruby ​​newfile.rb? - kouty
Nhưng nếu newfile đã tồn tại và không trống, sau đó touch newfile sẽ để lại cho bạn một NULL tập tin. 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, touch lệnh sẽ chỉ cập nhật dấu thời gian của tệp (đó là những gì lệnh chính xác cho) mà không cần chỉnh sửa nội dung của tập tin. - C0deDaedalus
Bạn không cần phải nghĩ như vậy; đúng rồi! Nhưng đó không phải là câu hỏi được đặt ra. - Camille Goudeseune


> newfile

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

>> file

Ngay cả khi tệp 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, cái này sẽ nhanh hơn:

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

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


75
2018-01-14 19:38



Bây giờ mới. Nó có bash cụ thể không? - Tshepang
Tôi không nghĩ vậy. Bất kỳ trình bao nào cho phép chuyển hướng luồng đầu ra sang một tệp sẽ hỗ trợ điều này. Điều này sẽ cắt bớt tệp nếu nó đã tồn tại. chạm là an toàn để sử dụng nếu bạn không muốn để trống nó. - balki
Wow bây giờ tôi nghĩ điều này được gọi là gian lận hệ thống - banarun


cat /dev/null > file1.ext 

cách chính xác cũng có 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*.*

12
2018-01-15 06:56



Không, 'echo' "> 'không tạo tệp trống, nó tạo tệp có chứa dòng mới. Nếu bạn vì lý do nào đó muốn sử dụng tiếng vọng để 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


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

vim filename

Sau đó lưu

:wq

7
2018-04-03 09:41



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 nào vim. - Nephente


Lệnh

echo -n > file

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

Hoặc bạn có thể sử dụng printf

printf '' > file

2
2018-06-22 09:47





Python một lớp lót:

$ 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, triển khai python touch.

Chúng tôi 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 

0
2017-07-10 11:17