如何使用bash命令将文件名列表写入.lst文件

时间:2012-09-19 17:07:18

标签: linux bash php

我是linux新手并尝试在我尝试编写的PHP脚本中使用bash命令,我需要从我正在使用DirectoryIterator迭代的目录中编写每个PDF文件名()在PHP中的.lst文件,我已经坐在另一个文件夹中,并在文本文件的新行中列出了每个文件名。

.lst文件应如下所示:

1.pdf
2.pdf
3.pdf
...

我希望这是有道理的。任何帮助/方向将不胜感激。

这是我到目前为止提出的代码:

// Use the command line cp to copy each PDF file in the sourceDir to the destinationDir.
foreach ($srcDir as $entity) {

    /**
     * @var DirectoryIterator $entity
     */
    /*$result = rename($sourceDir . '/' . $entity->getFilename(), $destinationDir .'/' . $entity->getFileName());
    if(!$result)
    {
        throw Exception('Could not copy file ' . $entity->getFilename() . 'to destination directory ');
    }*/

    $cpString = 'cp ' . $sourceDir . '/' . $entity->getFilename() . ' ' . $destinationDir .'/' . $entity->getFileName() . ' 2<&1';
    passthru($cpString, $returnVar);

    if($entity->isFile() && strtoupper($entity->getExtension()) == 'PDF')
    {
        $cpString = 'cp ' . $sourceDir . '/' . $entity->getFilename() . ' ' . $destinationDir .'/' . $entity->getFileName();
        if ($counter = 1) {
            $catString = 'cat ' . $destinationDir . '/' . $batchNum . '.lst';
        }
        $cpString = ''
    }
    $counter++;
}

1 个答案:

答案 0 :(得分:2)

$fh = fopen("foo.lst", "w");

foreach ($srcDir as $entity)
    fwrite($fh, $entity->getFilename() . "\n");

fclose($fh);