LINUX.ORG.RU
ФорумTalks

tar command style

 , ,


0

2

Пока вы обсуждаете всякую малозначащую ерунду типа systemd или pipewire, в мире Linux остаются действительно очень важные нерешенные проблемы, которые простой ЛОРовец стесняется обсуждать.

Одина из таких - какой стиль команд использовать простому крестьянину в tar?

Традиционный:

tar cfv etc.tar /etc

Модный UNIX:

tar -cvf etc.tar /etc

Или, может быть, вы любите длинные, но однозначные опции в GNU-style?

tar –create –file etc.tar –verbose /etc

Нам надо наконец-то решить и принять единый стиль - твердо и четко.

★★★★★

Нам надо наконец-то решить и принять единый стиль - твердо и четко.

Ты чутка самую малость немножечко опоздал.

t184256 ★★★★★
()
Ответ на: комментарий от LikeABoss

Тем не менее очень много софта пакуется именно в .tar.gz

snake266 ★★
()
Ответ на: комментарий от t184256

Ты чутка самую малость немножечко опоздал.

Посмоянно натыкаюсь на мануалы, в пределах которых используются два стиля. Это терпеть невозможно.

Turbid ★★★★★
() автор топика
Ответ на: комментарий от Turbid

dd – это практически последный выживший динозавр, с абсолютно своим синтаксисом параметров.

beastie ★★★★★
()

ps

тоже имеет исторический синтаксис

This version of ps accepts several kinds of options:

1 UNIX options, which may be grouped and must be preceded by a dash.
2 BSD options, which may be grouped and must not be used with a dash.
3 GNU long options, which are preceded by two dashes.

n_play
()

Настоящие джедаи пишут alias один раз и пользуются им.

cocucka ★★★★☆
()
Ответ на: комментарий от n_play

ps

Да, прекрасный образец на наш конкурс. Сейчас вот вспоминаю, что если tar я использую то так, то так, но ps всегда только так:

$ ps aux

Turbid ★★★★★
() автор топика
Последнее исправление: Turbid (всего исправлений: 1)
Ответ на: комментарий от LikeABoss

Все стили давно уже заезжены. Это просто тот, что актуально используется там. В других местах я ещё не встречал.

beastie ★★★★★
()

Меня аж трисет, когда вижу эту несогласованность. Предпочитаю использовать модный UNIX стиль.

urxvt ★★★★★
()

BSD-style использую везде, где это работает.

WitcherGeralt ★★
()

Так говоришь, как-будто наличие нескольких способов сделать одно и тоже, это что-то плохое. Просто делай всегда одним и тем же способом,да и все. Фигню ты предложил.

Dog ★★★
()

Стиль есть ровно один, -f вместе с --flag. Флаги без минуса и всякие dd-style - это ублюдские пережитки из прошлого века.

slovazap ★★★★★
()

Нам надо наконец-то решить и принять единый стиль - твердо и четко.

не надо, это вообще нацизмом попахивает, когда кто-то что-то пытается унифицировать, линукс тем и хорош (был), что все можно было решить множеством способов

IvanR ★★★
()
Ответ на: комментарий от IvanR

Ты же понимаешь, что tar cfv etc.tar /etc и tar -cfv etc.tar /etc — это не «решить множеством способов»?

нацизмом попахивает

А, нет, не понимаешь.

moonmadness
()

ТС, я нашел тебе решение, один раз настроил и забыл) Вроде в баше тоже что-то подобное можно, но я узнал об этом уже после того, как поставил zsh.

Для распаковки впишем в .zhsrc:

# Распаковка архивов
# example: extract file
extract () {
 if [ -f $1 ] ; then
 case $1 in
 *.tar.bz2)   tar xjf $1        ;;
 *.tar.gz)    tar xzf $1     ;;
 *.bz2)       bunzip2 $1       ;;
 *.rar)       unrar x $1     ;;
 *.gz)        gunzip $1     ;;
 *.tar)       tar xf $1        ;;
 *.tbz2)      tar xjf $1      ;;
 *.tbz)       tar -xjvf $1    ;;
 *.tgz)       tar xzf $1       ;;
 *.zip)       unzip $1     ;;
 *.Z)         uncompress $1  ;;
 *.7z)        7z x $1    ;;
 *)           echo "I don't know how to extract '$1'..." ;;
 esac
 else
 echo "'$1' is not a valid file"
 fi
}


Для создания архивов:

# Запаковать архив
# example: pk tar file
pk () {
 if [ $1 ] ; then
 case $1 in
 tbz)       tar cjvf $2.tar.bz2 $2      ;;
 tgz)       tar czvf $2.tar.gz  $2       ;;
 tar)      tar cpvf $2.tar  $2       ;;
 bz2)    bzip $2 ;;
 gz)        gzip -c -9 -n $2 > $2.gz ;;
 zip)       zip -r $2.zip $2   ;;
 7z)        7z a $2.7z $2    ;;
 *)         echo "'$1' cannot be packed via pk()" ;;
 esac
 else
 echo "'$1' is not a valid file"
 fi

}     
Dog ★★★
()
Ответ на: комментарий от moonmadness

tar cfv etc.tar /etc

tar -cfv etc.tar /etc

Надо понимать, что это две разные команды

Turbid ★★★★★
() автор топика
Ответ на: комментарий от moonmadness

просто не люблю, когда кто-то хочет что-то унифицировать

IvanR ★★★
()
Ответ на: комментарий от moonmadness

это не «решить множеством способов»?

понимаю, я просто зацепился за фразу:

Нам надо наконец-то решить и принять единый стиль - твердо и четко.

IvanR ★★★
()

Последние 2. Они не противоречат друг-другу и де-факто стандарт. Ещё стоит find в порядок привести, если уж пошёл такой разговор.

anonymous-angler ★☆
()
Ответ на: комментарий от LikeABoss

Зачем, если давно есть нормальные 7z и прочие форматы архивов?

7z умеет паковать и распаковывать из pipe?

X512 ★★★★★
()
Ответ на: комментарий от X512
# echo aaaaa>test.txt
# chown observer:observer test.txt 
# ls -l test.txt 
-rw-r--r-- 1 observer observer 6 Aug 19 17:56 test.txt
#
# 7z a test.txt.7z test.txt

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz (906E9),ASM,AES-NI)

Scanning the drive:
1 file, 6 bytes (1 KiB)

Creating archive: test.txt.7z

Items to compress: 1

    
Files read from disk: 1
Archive size: 132 bytes (1 KiB)
Everything is Ok
# 
# rm test.txt
# 
# 7z x test.txt.7z 

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz (906E9),ASM,AES-NI)

Scanning the drive for archives:
1 file, 132 bytes (1 KiB)

Extracting archive: test.txt.7z
--
Path = test.txt.7z
Type = 7z
Physical Size = 132
Headers Size = 122
Method = LZMA2:12
Solid = -
Blocks = 1

Everything is Ok

Size:       6
Compressed: 132
# ls -l test.txt
-rw-r--r-- 1 root root 6 Aug 19 17:56 test.txt

ЧЯДНТ?

Kolins ★★★★
()
Ответ на: комментарий от X512

умеет

-si[{name}] Read data from stdin (e.g. tar cf - directory | 7z a -si directory.tar.7z)
-so    Write data to stdout (e.g. 7z x -so directory.tar.7z | tar xf -)

Kolins ★★★★
()
Последнее исправление: Kolins (всего исправлений: 1)
Ответ на: комментарий от Kolins

О как оказывается:

The 7-zip archive format does not store standard Unix file permissions such as owner/group or extended file attributes. Those who desire to use 7-zip as a long-term backup or archiving solution should wrap files in a tar archive before compressing with 7z. Examples are provided below.

https://wiki.gentoo.org/wiki/P7zip

Я думал что он умеет сохранять UNIX атрибуты. Что им мешало реализовать?

X512 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.