<p>To create a playlist for all of the music in a folder, I am using the following command in bash:</p>

<pre><code>ls &gt; list.txt
</code></pre>

<p>I would like to use the result of the <code>pwd</code> command for the name of the playlist.</p>

<p>Something like:</p>

<pre><code>ls &gt; ${pwd}.txt
</code></pre>

<p>That doesn't work though - can anyone tell me what syntax I need to use to do something like this?</p>

<p><strong>Edit:</strong> As mentioned in the comments pwd will end up giving an absolute path, so my playlist will end up being named .txt in some directory - d'oh! So I'll have to trim the path. Thanks for spotting that - I would probably have spent ages wondering where my files went!</p>

The best way to do this is with
```
"$(command substitution)"
```
(thanks,
Landon
):
```
```
ls > "$(pwd).txt"
```
```
You will sometimes also see people use the older backtick notation, but this has
several drawbacks
in terms of nesting and escaping:
```
```
ls > "`pwd`.txt"
```
```
Note that the unprocessed substitution of
```
pwd
```
is an absolute path, so the above command creates a file with the same name in the same directory as the working directory, but with a
```
.txt
```
extension. Thomas Kammeyer pointed out that the
```
basename
```
command strips the leading directory, so this would create a text file in the current directory with the name of that directory:
```
```
ls > "$(basename "$(pwd)").txt"
```
```
Also thanks to erichui for bringing up the problem of spaces in the path.