Предыдущие ответы (начиная с 20160611), обсуждающие уровни запуска, применимы только для версий Ubuntu с использованием Upstart. Ubuntu 16.04 переключился с выскочки на systemd. Для загрузки на консоль, а не на X, вам нужно изменить цель по умолчанию для загрузки с graphical на multi-user:
sudo systemctl enable multi-user.target --force
sudo systemctl set-default multi-user.target
Затем перезагрузитесь. Чтобы отменить это:
sudo systemctl set-default graphical.target
И затем перезагрузитесь.
Например:
$ tar tf ffmpeg-release-64bit-static.tar.xz | head -1 | cut -d '/' -f1
ffmpeg-3.4.2-64bit-static
Обратите внимание, что GNU tar не требует -j, -z и т. д., он может автоматически обнаруживать тип архива.
Итак, я сделал бы что-то вроде:
mkdir ffmpeg
wget -O - http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz |
tar --xz -x -C ffmpeg --strip-components=1
Здесь я сам сделал директорию и сказал, чтобы tar был там извлечен ( -C), удаляя первый компонент из пути извлеченных файлов. Таким образом, ffmpeg-3.4.1-64bit-static/ffprobe становится ffprobe внутри каталога ffmpeg.
Или:
wget -O - http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz |
tar --xz -x --transform='s:[^/]*/:ffmpeg/'
Здесь я просто изменил первый компонент пути на ffmpeg, поэтому мне не нужно было создавать каталог самостоятельно. Таким образом, ffmpeg-3.4.1-64bit-static/ffmpeg становится ffmpeg/ffmpeg.
Или, зная, что вы специально хотите сбросить эти конкретные файлы в /usr/local/bin, используйте -C для непосредственного размещения файлов там, удаляя все компоненты каталога и выбирая именно те файлы, которые вы хотите извлечь:
wget -O - http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz |
tar Jx -C /usr/local/bin --transform='s:.*/::' --wildcards '*/ffmpeg' '*/ffprobe'
С любым tar вы можете указать файлы, которые нужно извлечь. С GNU tar вы также можете использовать подстановочные знаки.
Команда для получения имени каталога из файла tar.xz:
tar tJvf tar-file-name.tar.xz | head -1 | awk '{print $6}'
Вам понадобится:
Получить имя каталога (например, используя вышеуказанное решение ) и сохраните его в переменной, распакуйте файл tar.xz (например, используя команду tar xf), переместите файлы с помощью переменной каталогаОбъяснение, как получить имя каталога из tar file:
Параметры tar:
-f file
-J xz compression
-t list content
-v verbose
head -1 - печатает строку файла
awk '{print $6}' - печатает 6-й элемент, который имя каталога
Примеры:
Получить имя каталога (например, используя вышеприведенное решение) и сохранить его в переменной [ ! d13]Результаты с:
coreutils-8.22/
tar.bz2 пример для ffmpeg-3.4.2.tar.bz2 tar tjvf ffmpeg-3.4.2.tar.bz2 | head -1 | awk '{print $ 6}' Результаты с:
ffmpeg-3.4.2/
Обратите внимание, что для сжатых файлов bz2 я использовал флаг tar j Например:
$ tar tf ffmpeg-release-64bit-static.tar.xz | head -1 | cut -d '/' -f1
ffmpeg-3.4.2-64bit-static
Обратите внимание, что GNU tar не требует -j, -z и т. д., он может автоматически обнаруживать тип архива.
Итак, я сделал бы что-то вроде:
mkdir ffmpeg
wget -O - http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz |
tar --xz -x -C ffmpeg --strip-components=1
Здесь я сам сделал директорию и сказал, чтобы tar был там извлечен ( -C), удаляя первый компонент из пути извлеченных файлов. Таким образом, ffmpeg-3.4.1-64bit-static/ffprobe становится ffprobe внутри каталога ffmpeg.
Или:
wget -O - http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz |
tar --xz -x --transform='s:[^/]*/:ffmpeg/'
Здесь я просто изменил первый компонент пути на ffmpeg, поэтому мне не нужно было создавать каталог самостоятельно. Таким образом, ffmpeg-3.4.1-64bit-static/ffmpeg становится ffmpeg/ffmpeg.
Или, зная, что вы специально хотите сбросить эти конкретные файлы в /usr/local/bin, используйте -C для непосредственного размещения файлов там, удаляя все компоненты каталога и выбирая именно те файлы, которые вы хотите извлечь:
wget -O - http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-64bit-static.tar.xz |
tar Jx -C /usr/local/bin --transform='s:.*/::' --wildcards '*/ffmpeg' '*/ffprobe'
С любым tar вы можете указать файлы, которые нужно извлечь. С GNU tar вы также можете использовать подстановочные знаки.
Команда для получения имени каталога из файла tar.xz:
tar tJvf tar-file-name.tar.xz | head -1 | awk '{print $6}'
Вам понадобится:
Получить имя каталога (например, используя вышеуказанное решение ) и сохраните его в переменной, распакуйте файл tar.xz (например, используя команду tar xf), переместите файлы с помощью переменной каталогаОбъяснение, как получить имя каталога из tar file:
Параметры tar:
-f file
-J xz compression
-t list content
-v verbose
head -1 - печатает строку файла
awk '{print $6}' - печатает 6-й элемент, который имя каталога
Примеры:
Получить имя каталога (например, используя вышеприведенное решение) и сохранить его в переменной [ ! d13]Результаты с:
coreutils-8.22/
tar.bz2 пример для ffmpeg-3.4.2.tar.bz2 tar tjvf ffmpeg-3.4.2.tar.bz2 | head -1 | awk '{print $ 6}' Результаты с:
ffmpeg-3.4.2/
Обратите внимание, что для сжатых файлов bz2 я использовал флаг tar j