Команды, читающие stdin
, почти все относятся к семейству filter, т.е. программ, преобразующих поток текстовых данных в преобразованный.
cat
, sed
, awk
, gzip
и даже sh
- хорошие примеры таких "фильтров".
Процитированные команды cp
, mv
и rm
определенно не фильтры, а команды, которые делают что-то с переданными аргументами, здесь файлами или каталогами.
Команда cd
похожа на них, она ожидает аргумента (или имитирует аргумент по умолчанию, если он не указан), и обычно ничего не выводит на stdout
, хотя в некоторых случаях, например, при использовании CDPATH
, может вывести что-то на него.
Даже если вы захотите создать вариант cd
, который будет получать целевой каталог из stdin, это не будет иметь никакого эффекта при использовании в конвейере в оболочке Bourne, dash
и bash
, чтобы назвать несколько. Последний компонент команды выполняется в под-оболочке, переход в новый каталог не влияет на текущую оболочку. например: echo /tmp | cd
будет работать с ksh93
, но не с bash
, dash
, zsh
, sh
, ...
cd <(echo /tmp)
будет работать с оболочками, поддерживающими подстановку процессов (по крайней мере, ksh
, bash
, zsh
), но не будет иметь существенного преимущества по сравнению с cd $(echo tmp)
Единственный случай использования, который может представлять интерес, это что-то вроде:
echo tmp | (cd ; pwd)
Наконец, такой вариант должен будет разобраться со случаем, когда аргумент не указан, но ожидаемое поведение - изменить каталог на домашний для пользователя, или когда аргумент не указан, но ожидаемое поведение - прочитать имя целевого каталога из stdin. Так как нет надежного способа определить, это обречено.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^/t/client/(care/.*)$ http://www.theshop.com/$1 [NC,R,L]
Это перенаправит http://www.pathfinder.com/T/client/care/foo.html
илиhttp://pathfinder.com/T/client/care/foo.html
кhttp://theshop.com/care/foo.html
использование флагов
Если вы хотите перенаправить только страницу входа, используйте
RewriteRule ^/t/client(/care/login.html)$ http://www.theshop.com$1 [NC,R,L]