Запись слова в каждый файл txt в папке

Существует два основных подхода к восстановлению данных. Первая - это файловая резьба, которая пытается идентифицировать начало и конец файлов и извлекать их. Это очень хорошо подходит для определенных типов файлов, но вы теряете имена файлов и время файла. Это особенно хорошо для jpeg-изображений.

Второй подход во многом зависит от файловой системы. Вероятно, вы используете ext3 или ext4. Если вы используете ext3, то должен работать sluthkit. Тем не менее, я считаю, что sleuthkit еще не справляется с ext4. Если ваша файловая система ext3, попробуйте:

sudo apt-get install sleuthkit

и запустите

fls -r <device name of your home directory>

, например

fls -r /dev/sda1

(я не использовал WUBI так Я не знаю, где может быть ваш домашний раздел.)

Это покажет вам имена файлов, которые могут быть восстановлены. Если они могут быть восстановлены, тогда icat может быть использован для их восстановления.

10
задан 11 April 2017 в 17:30

12 ответов

Простая для работы сделана:

for i in ./*.txt; do echo 'cat' >> "$i"; done;

Это приведет к отображению всех файлов txt в текущем каталоге, циклов по ним и echo cat в них (добавление к контенту) , вы можете изменить >> на >, чтобы перезаписать содержимое файлов с помощью cat.

Другое, что вы можете сделать, это использовать tee для перенаправления потока на несколько файлов.

Чтобы добавить:

echo "cat" | tee -a *.txt

Чтобы перезаписать:

echo "cat" | tee *.txt
20
ответ дан 18 July 2018 в 15:10

Подход Python:

#!/usr/bin/env python import sys for i in sys.argv[1:]: with open(i,'w') as fd: fd.write("cat\n") он использует модуль sys для итерации по аргументам командной строки, каждый аргумент командной строки будет открыт, так как файл для записи «cat» с новой строкой будет записан в файл перед переходом к следующему

Использование будет таким, как ./add_cat.py *.txt, который будет работать со всеми .txt файлами в текущем рабочем каталоге. Улучшение этого может включать использование аргумента командной строки # 1 в качестве строки для записи вместо hardcoding «cat».

4
ответ дан 18 July 2018 в 15:10

Если файлы не пусты, вы можете использовать sed без цикла. Чтобы добавить cat в начало:

sed 'i\cat' *.txt

Чтобы добавить в конец:

sed 'a\cat' *.txt

Добавить после второй строки:

sed '2 a\cat' *.txt

Чтобы добавить к ним строки с foo в них:

sed '/foo/ i\cat' *.txt

Однако он не работает в пустых файлах.

(Чтобы на самом деле записать файлы после тестирования, вам понадобится опция -i: sed -i 'a\cat' *.txt)

13
ответ дан 18 July 2018 в 15:10

Простая для работы сделана:

for i in ./*.txt; do echo 'cat' >> "$i"; done;

Это приведет к отображению всех файлов txt в текущем каталоге, циклов по ним и echo cat в них (добавление к контенту) , вы можете изменить >> на >, чтобы перезаписать содержимое файлов с помощью cat.

Другое, что вы можете сделать, это использовать tee для перенаправления потока на несколько файлов.

Чтобы добавить:

echo "cat" | tee -a *.txt

Чтобы перезаписать:

echo "cat" | tee *.txt
20
ответ дан 24 July 2018 в 20:34
  • 1
    что такое con использовать echo "cat" >> *.txt? – hytromo 12 April 2017 в 01:19
  • 2
    @hakermania, который должен потерпеть неудачу с ambiguous redirect – Zanna 12 April 2017 в 07:35

Подход Python:

#!/usr/bin/env python import sys for i in sys.argv[1:]: with open(i,'w') as fd: fd.write("cat\n") он использует модуль sys для итерации по аргументам командной строки, каждый аргумент командной строки будет открыт, так как файл для записи «cat» с новой строкой будет записан в файл перед переходом к следующему

Использование будет таким, как ./add_cat.py *.txt, который будет работать со всеми .txt файлами в текущем рабочем каталоге. Улучшение этого может включать использование аргумента командной строки # 1 в качестве строки для записи вместо hardcoding «cat».

4
ответ дан 24 July 2018 в 20:34

Если файлы не пусты, вы можете использовать sed без цикла. Чтобы добавить cat в начало:

sed 'i\cat' *.txt

Чтобы добавить в конец:

sed 'a\cat' *.txt

Добавить после второй строки:

sed '2 a\cat' *.txt

Чтобы добавить к ним строки с foo в них:

sed '/foo/ i\cat' *.txt

Однако он не работает в пустых файлах.

(Чтобы на самом деле записать файлы после тестирования, вам понадобится опция -i: sed -i 'a\cat' *.txt)

13
ответ дан 24 July 2018 в 20:34
  • 1
    Я ненавижу sed :)), потому что у вас много чего вы можете с этим сделать, и я не знаю о них :)) – Ravexina 11 April 2017 в 17:18
  • 2
    @Ravexina sed - моя джем;) – Zanna 11 April 2017 в 17:18
  • 3
    почему 'i\cat' использует обратную косую черту вместо косой черты? – phuclv 12 April 2017 в 14:27
  • 4
    @ LưuVĩnhPhúc обратная косая черта необязательна, вы также можете поставить 'icat' или i cat. Я считаю, что обратная косая черта условна. Вы не можете использовать forwardslash - это будет буквально вставлено – Zanna 12 April 2017 в 14:39

Простая для работы сделана:

for i in ./*.txt; do echo 'cat' >> "$i"; done;

Это приведет к отображению всех файлов txt в текущем каталоге, циклов по ним и echo cat в них (добавление к контенту) , вы можете изменить >> на >, чтобы перезаписать содержимое файлов с помощью cat.

Другое, что вы можете сделать, это использовать tee для перенаправления потока на несколько файлов.

Чтобы добавить:

echo "cat" | tee -a *.txt

Чтобы перезаписать:

echo "cat" | tee *.txt
20
ответ дан 31 July 2018 в 23:36
  • 1
    что такое con использовать echo "cat" >> *.txt? – hytromo 12 April 2017 в 01:19
  • 2
    @hakermania, который должен потерпеть неудачу с ambiguous redirect – Zanna 12 April 2017 в 07:35

Подход Python:

#!/usr/bin/env python import sys for i in sys.argv[1:]: with open(i,'w') as fd: fd.write("cat\n") он использует модуль sys для итерации по аргументам командной строки, каждый аргумент командной строки будет открыт, так как файл для записи «cat» с новой строкой будет записан в файл перед переходом к следующему

Использование будет таким, как ./add_cat.py *.txt, который будет работать со всеми .txt файлами в текущем рабочем каталоге. Улучшение этого может включать использование аргумента командной строки # 1 в качестве строки для записи вместо hardcoding «cat».

4
ответ дан 31 July 2018 в 23:36

Если файлы не пусты, вы можете использовать sed без цикла. Чтобы добавить cat в начало:

sed 'i\cat' *.txt

Чтобы добавить в конец:

sed 'a\cat' *.txt

Добавить после второй строки:

sed '2 a\cat' *.txt

Чтобы добавить к ним строки с foo в них:

sed '/foo/ i\cat' *.txt

Однако он не работает в пустых файлах.

(Чтобы на самом деле записать файлы после тестирования, вам понадобится опция -i: sed -i 'a\cat' *.txt)

13
ответ дан 31 July 2018 в 23:36
  • 1
    Я ненавижу sed :)), потому что у вас много чего вы можете с этим сделать, и я не знаю о них :)) – Ravexina 11 April 2017 в 17:18
  • 2
    @Ravexina sed - моя джем;) – Zanna 11 April 2017 в 17:18
  • 3
    почему 'i\cat' использует обратную косую черту вместо косой черты? – phuclv 12 April 2017 в 14:27
  • 4
    @ LưuVĩnhPhúc обратная косая черта необязательна, вы также можете поставить 'icat' или i cat. Я считаю, что обратная косая черта условна. Вы не можете использовать forwardslash - это будет буквально вставлено – Zanna 12 April 2017 в 14:39

Простая для работы сделана:

for i in ./*.txt; do echo 'cat' >> "$i"; done;

Это приведет к отображению всех файлов txt в текущем каталоге, циклов по ним и echo cat в них (добавление к контенту) , вы можете изменить >> на >, чтобы перезаписать содержимое файлов с помощью cat.

Еще одна вещь, которую вы можете сделать, это использовать tee для перенаправления потока на несколько файлов.

Чтобы добавить:

echo "cat" | tee -a *.txt

Чтобы перезаписать:

echo "cat" | tee *.txt
20
ответ дан 3 August 2018 в 20:51

Если файлы не пусты, вы можете использовать sed без цикла. Чтобы добавить cat в начало:

sed 'i\cat' *.txt

Чтобы добавить в конец:

sed 'a\cat' *.txt

Добавить после второй строки:

sed '2 a\cat' *.txt

Чтобы добавить к ним строки с foo:

sed '/foo/ i\cat' *.txt

Однако он не работает в пустых файлах. Вид ошибки.

(Чтобы на самом деле записать файлы после тестирования, вам понадобится опция -i: sed -i 'a\cat' *.txt)

13
ответ дан 5 August 2018 в 05:31

Простая для работы сделана:

for i in ./*.txt; do echo 'cat' >> "$i"; done;

Это приведет к отображению всех файлов txt в текущем каталоге, циклов по ним и echo cat в них (добавление к контенту) , вы можете изменить >> на >, чтобы перезаписать содержимое файлов с помощью cat.

Еще одна вещь, которую вы можете сделать, это использовать tee для перенаправления потока на несколько файлов.

Чтобы добавить:

echo "cat" | tee -a *.txt

Чтобы перезаписать:

echo "cat" | tee *.txt
20
ответ дан 9 August 2018 в 03:04

Другие вопросы по тегам:

Похожие вопросы: