Пол объяснил правильно. Мой следующий ответ был написан до того, как Анураг Пешне любезно объяснил мне, что он имел в виду, см. Комментарии ниже. Я оставляю свой ответ таким, какой он есть, даже если он не имеет отношения к делу, потому что мне кажется трусливым скрывать мои ошибки.
Выражение, которое не работает так, как хотелось бы оригинальному OP, содержит:
echo '$HOME/Downloads'
то есть переменная оболочки внутри одинарных кавычек, ''. Это стандартный язык оболочки bash для не вычисления выражения внутри одинарных кавычек. По факту,
$ echo '$HOME/Downloads'
$HOME/Downloads
$ echo "$HOME/Downloads"
/home/myname/Downloads
Обратите внимание на разницу между использованием одинарных кавычек '' и двойных кавычек "", которые вместо этого означают: заменять переменные.
На самом деле, руководство Bash говорит об этой разнице:
3.1.2.2 Одиночные кавычки
Заключение символов в одинарные кавычки ('' ') сохраняет буквальное значение каждого символа в кавычках. Одиночная кавычка может отсутствовать между одинарными кавычками, даже если ей предшествует обратная косая черта.
3.1.2.3 Двойные кавычки
Заключение символов в двойные кавычки ('' ') сохраняет буквальное значение всех символов в кавычках, за исключением' $ ',' `',' \'и, когда расширение истории включено,'! '. Символы '$' и '`' сохраняют свое специальное значение в двойных кавычках (см. Расширения оболочки). Обратная косая черта сохраняет свое особое значение только тогда, когда за ней следует один из следующих символов: '$', '`', '"', '\' или перевод строки. В двойных кавычках удаляются обратные слэши, за которыми следует один из этих символов. Обратная косая черта предшествующих символов без специального значения остается неизменной. Двойная кавычка может быть заключена в двойные кавычки, если им предшествует обратная косая черта. Если включено, расширение истории будет выполняться, если не указано «!» в двойных кавычках экранируется с помощью обратной косой черты. Обратная косая черта, предшествующая '!' не удаляется.
Специальные параметры '*' и '@' имеют особое значение в двойных кавычках (см. Расширение параметров оболочки).
Короче говоря, команды, отображаемые OP, работают точно так, как указано в руководстве по Bash, и весь этот бизнес полностью не связан с поведением xargs.