Там другой простой путь состоит в том, чтобы добавить строку к концу файла кроме'>>'?

Главное преимущество состоит в том, что Вам не нужны никакие оптические среды (или другие средства установки), также что netinstall установит последние доступные пакеты (если бы Вы установили другими способами, то необходимо было бы выполнить обновление сначала).

Также у Вас может быть зеркало в Вашей локальной сети, если необходимо установить ее во многих машинах, таким образом сохранив Вас пропускная способность.

21
14.01.2015, 00:53
6 ответов

Установите опцию оболочки NOCLOBBER :

bash-3.2$ set -o noclobber
bash-3.2$ echo hello >foo
bash-3.2$ echo hello >foo
bash: foo: cannot overwrite existing file
bash-3.2$ 
47
27.01.2020, 19:43

Вы всегда можете искать через файл в другом Способы ...

seq 10000000 >f
{ wc -l >&2; echo new line\!; } <>f >&0; \
{ wc -l >&2; echo new line\!; } <>f >&0; \
{ wc -l >&2; echo new line\!; } <>f >&0; \
{ wc -l >&2; echo new line\!; } <>f >&0; \
{ wc -l >&2; echo new line\!; } <>f >&0; \
wc -l f; tail f

... Это странно выглядящая последовательность печати:

10000000
10000001
10000002
10000003
10000004
10000005 f
9999996
9999997
9999998
9999999
10000000
new line!
new line!
new line!
new line!
new line!

, но это вроде глупо.

Более полезный пример может выглядеть следующим образом:

 apnd() if    shift
        then  wc -l  >&2
              printf "$@"
        fi    <>"$1" >&0

Вы можете назвать это как:

 apnd /path/to/file          \
      "${printf_fmt_string}" \
       arbitrary list of strings

, и вы вынудите с количеством файла строк, написанные на STDERR Незадолго до того, как произойдет действие Append.

-1
27.01.2020, 19:43

Я хотел бы использовать SED (даже с резервной копией - см. Упрос после -I ):

sed -i.bak '$ a\something' /Users/zen1/zen/pythonstudy/tree_hole
-121-----21193-

Если вы беспокоитесь, ваш файл будет поврежден на > > > Оператор, вы можете изменить свой атрибут файла, чтобы добавить только:
В EXT2 / EXT3 / EXT4 файловая система: Chattr + A файл.txt
в XFS FileSystem: Echo Chattr + A | xfs_io file.txt

И если вы хотите функцию, я уже сделал функцию для себя (я использовал его в сервисном файле для регистрации выходов), вы можете изменить его для своей цели:

# This function redirect logs to file or terminal or both!
#@ USAGE: log option data
# To the file     -f file
# To the terminal -t
function log(){
        read -r data       # Read data from pipe line

        [[ -z ${indata} ]] && return 1    # Return 1 if data is null

        # Log to /var/log/messages
        logger -i -t SOFTWARE ${data}

        # While loop for traveling on the arguments
        while [[ ! -z "$*" ]]; do
                case "$1" in
                        -t)
                                # Writting data to the terminal
                                printf "%s\n" "${data}"
                                ;;
                        -f) 
                                # Writting (appending) data to given log file address
                                fileadd=$2
                                printf "%s %s\n" "[$(date +"%D %T")] ${data}" >> ${fileadd}
                                ;;
                        *)
                                ;;
                esac
                shift           # Shifting arguments
        done
}
7
27.01.2020, 19:43

Используйте тройник с дополнительной опцией:

foo | tee -a some-file
# or
tee -a some-file <<EOF
blah blah
EOF
# or 
tee -a some-file <<<"blah blah"
3
27.01.2020, 19:43

Многие программы, которые могут открывать файлы для перезаписи, могут альтернативно открыть их для добавления, например GNU DD.

dd conv=notrunc oflag=append of=file

Он может читать stdin или файл, названный в , если = Параметр Добавить 2> / dev / null , чтобы подавить счетчик байта.

0
27.01.2020, 19:43

Я хотел бы использовать sed (даже с резервной копией - см. расширение после -i):

sed -i.bak '$ a\something' /Users/zen1/zen/pythonstudy/tree_hole
-1
27.01.2020, 19:43

Теги

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