Question: After creating a few directories and hidden files and running the following commands

```
ls -al | wc -l 
ls -a1 | wc -l 

```

I get a difference in the total returned by the word count program. The 

```
ls -al | wc -l

```

command returns one more count. Why is this?

Answer: 
```
$ ls -al | head -n 1
total 57600

```

This line is not shown with `-1`.
`|` is the pipe that connect the command, the output of left command `ls -al` is the input of right command `wc -l`.

output of command `ls -al` is string then `wc -l` will count the string as a file content,The file names in the string content isn't the argument for command `wc -l`.

the command `xargs` is useful,you can use it.
like:

```
ls -a | xargs wc -l
# find command to find files
find ./* | xargs wc -l

```